From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- lib/docbuilder/AUTHORS | 10 + lib/docbuilder/Makefile | 37 + lib/docbuilder/doc/html/.gitignore | 0 lib/docbuilder/doc/man3/.gitignore | 0 lib/docbuilder/doc/man6/.gitignore | 0 lib/docbuilder/doc/pdf/.gitignore | 0 lib/docbuilder/doc/src/Makefile | 132 +++ lib/docbuilder/doc/src/block_tags.xml | 431 +++++++ lib/docbuilder/doc/src/book.xml | 50 + lib/docbuilder/doc/src/character_entities.xml | 546 +++++++++ lib/docbuilder/doc/src/docb_gen.xml | 213 ++++ lib/docbuilder/doc/src/docb_transform.xml | 224 ++++ lib/docbuilder/doc/src/docb_xml_check.xml | 59 + lib/docbuilder/doc/src/docbuilder_app.xml | 57 + lib/docbuilder/doc/src/fasc_dtds.xml | 115 ++ lib/docbuilder/doc/src/fascicules.xml | 15 + lib/docbuilder/doc/src/gazonk | 17 + lib/docbuilder/doc/src/header_tags.xml | 183 +++ lib/docbuilder/doc/src/inline_tags.xml | 254 ++++ lib/docbuilder/doc/src/make.dep | 33 + lib/docbuilder/doc/src/man.gif | Bin 0 -> 6048 bytes lib/docbuilder/doc/src/man.ps | 750 ++++++++++++ lib/docbuilder/doc/src/notes.xml | 156 +++ lib/docbuilder/doc/src/overview.xml | 185 +++ lib/docbuilder/doc/src/part.xml | 43 + lib/docbuilder/doc/src/part_notes.xml | 37 + lib/docbuilder/doc/src/ref_man.xml | 40 + lib/docbuilder/doc/src/refman_dtds.xml | 667 +++++++++++ lib/docbuilder/doc/src/user_guide_dtds.xml | 181 +++ lib/docbuilder/dtd/Makefile | 91 ++ lib/docbuilder/dtd/application.dtd | 29 + lib/docbuilder/dtd/appref.dtd | 33 + lib/docbuilder/dtd/book.dtd | 73 ++ lib/docbuilder/dtd/bookinsidecover.dtd | 36 + lib/docbuilder/dtd/chapter.dtd | 36 + lib/docbuilder/dtd/cites.dtd | 35 + lib/docbuilder/dtd/common.dtd | 87 ++ lib/docbuilder/dtd/common.entities.dtd | 24 + lib/docbuilder/dtd/common.header.dtd | 42 + lib/docbuilder/dtd/common.image.dtd | 21 + lib/docbuilder/dtd/common.refs.dtd | 40 + lib/docbuilder/dtd/common.table.dtd | 25 + lib/docbuilder/dtd/comref.dtd | 31 + lib/docbuilder/dtd/cref.dtd | 34 + lib/docbuilder/dtd/erlref.dtd | 31 + lib/docbuilder/dtd/fascicules.dtd | 35 + lib/docbuilder/dtd/fileref.dtd | 31 + lib/docbuilder/dtd/part.dtd | 29 + lib/docbuilder/dtd/report.dtd | 138 +++ lib/docbuilder/dtd/terms.dtd | 36 + lib/docbuilder/dtd/xhtml-lat1.ent | 196 ++++ lib/docbuilder/dtd/xhtml-special.ent | 80 ++ lib/docbuilder/dtd/xhtml-symbol.ent | 237 ++++ lib/docbuilder/dtd/xhtml1-frameset.dtd | 1235 ++++++++++++++++++++ lib/docbuilder/dtd/xhtml1-strict.dtd | 978 ++++++++++++++++ lib/docbuilder/dtd/xhtml1-transitional.dtd | 1201 +++++++++++++++++++ lib/docbuilder/ebin/.gitignore | 0 lib/docbuilder/etc/Makefile | 67 ++ lib/docbuilder/etc/note.gif | Bin 0 -> 1539 bytes lib/docbuilder/etc/warning.gif | Bin 0 -> 1498 bytes lib/docbuilder/info | 2 + lib/docbuilder/src/Makefile | 121 ++ lib/docbuilder/src/docb_edoc_xml_cb.erl | 1163 ++++++++++++++++++ lib/docbuilder/src/docb_gen.erl | 138 +++ lib/docbuilder/src/docb_html.erl | 394 +++++++ lib/docbuilder/src/docb_html_layout.erl | 380 ++++++ lib/docbuilder/src/docb_html_ref.erl | 79 ++ lib/docbuilder/src/docb_html_util.erl | 543 +++++++++ lib/docbuilder/src/docb_html_util_iso.erl | 204 ++++ lib/docbuilder/src/docb_main.erl | 651 +++++++++++ lib/docbuilder/src/docb_pretty_format.erl | 177 +++ lib/docbuilder/src/docb_tr_application2html.erl | 288 +++++ lib/docbuilder/src/docb_tr_appref2html.erl | 48 + lib/docbuilder/src/docb_tr_chapter2html.erl | 59 + lib/docbuilder/src/docb_tr_cite2html.erl | 136 +++ lib/docbuilder/src/docb_tr_comref2html.erl | 46 + lib/docbuilder/src/docb_tr_cref2html.erl | 61 + lib/docbuilder/src/docb_tr_erlref2html.erl | 46 + lib/docbuilder/src/docb_tr_fileref2html.erl | 46 + lib/docbuilder/src/docb_tr_first2html.erl | 46 + lib/docbuilder/src/docb_tr_index2html.erl | 197 ++++ lib/docbuilder/src/docb_tr_part2html.erl | 240 ++++ lib/docbuilder/src/docb_tr_refs2kwic.erl | 156 +++ lib/docbuilder/src/docb_tr_report2html.erl | 70 ++ lib/docbuilder/src/docb_tr_term2html.erl | 126 ++ lib/docbuilder/src/docb_transform.erl | 161 +++ lib/docbuilder/src/docb_util.erl | 237 ++++ lib/docbuilder/src/docb_util.hrl | 34 + lib/docbuilder/src/docb_xmerl_tree_cb.erl | 343 ++++++ lib/docbuilder/src/docb_xmerl_xml_cb.erl | 88 ++ lib/docbuilder/src/docb_xml_check.erl | 44 + lib/docbuilder/src/docbuilder.app.src | 37 + lib/docbuilder/src/docbuilder.appup.src | 1 + lib/docbuilder/test/Makefile | 80 ++ lib/docbuilder/test/docb_SUITE.erl | 31 + .../test/docb_SUITE_data/cdata_problem.xml | 22 + lib/docbuilder/vsn.mk | 12 + lib/docbuilder/xsd/application.xsd | 31 + lib/docbuilder/xsd/appref.xsd | 27 + lib/docbuilder/xsd/book.xsd | 292 +++++ lib/docbuilder/xsd/chapter.xsd | 45 + lib/docbuilder/xsd/common.entities.xsd | 2 + lib/docbuilder/xsd/common.header.xsd | 29 + lib/docbuilder/xsd/common.image.xsd | 18 + lib/docbuilder/xsd/common.refs.xsd | 102 ++ lib/docbuilder/xsd/common.table.xsd | 42 + lib/docbuilder/xsd/common.xsd | 212 ++++ lib/docbuilder/xsd/comref.xsd | 26 + lib/docbuilder/xsd/cref.xsd | 35 + lib/docbuilder/xsd/erlref.xsd | 26 + lib/docbuilder/xsd/fascicules.xsd | 25 + lib/docbuilder/xsd/fileref.xsd | 26 + lib/docbuilder/xsd/part.xsd | 31 + 113 files changed, 16842 insertions(+) create mode 100644 lib/docbuilder/AUTHORS create mode 100644 lib/docbuilder/Makefile create mode 100644 lib/docbuilder/doc/html/.gitignore create mode 100644 lib/docbuilder/doc/man3/.gitignore create mode 100644 lib/docbuilder/doc/man6/.gitignore create mode 100644 lib/docbuilder/doc/pdf/.gitignore create mode 100644 lib/docbuilder/doc/src/Makefile create mode 100644 lib/docbuilder/doc/src/block_tags.xml create mode 100644 lib/docbuilder/doc/src/book.xml create mode 100644 lib/docbuilder/doc/src/character_entities.xml create mode 100644 lib/docbuilder/doc/src/docb_gen.xml create mode 100644 lib/docbuilder/doc/src/docb_transform.xml create mode 100644 lib/docbuilder/doc/src/docb_xml_check.xml create mode 100644 lib/docbuilder/doc/src/docbuilder_app.xml create mode 100644 lib/docbuilder/doc/src/fasc_dtds.xml create mode 100644 lib/docbuilder/doc/src/fascicules.xml create mode 100644 lib/docbuilder/doc/src/gazonk create mode 100644 lib/docbuilder/doc/src/header_tags.xml create mode 100644 lib/docbuilder/doc/src/inline_tags.xml create mode 100644 lib/docbuilder/doc/src/make.dep create mode 100644 lib/docbuilder/doc/src/man.gif create mode 100644 lib/docbuilder/doc/src/man.ps create mode 100644 lib/docbuilder/doc/src/notes.xml create mode 100644 lib/docbuilder/doc/src/overview.xml create mode 100644 lib/docbuilder/doc/src/part.xml create mode 100644 lib/docbuilder/doc/src/part_notes.xml create mode 100644 lib/docbuilder/doc/src/ref_man.xml create mode 100644 lib/docbuilder/doc/src/refman_dtds.xml create mode 100644 lib/docbuilder/doc/src/user_guide_dtds.xml create mode 100644 lib/docbuilder/dtd/Makefile create mode 100644 lib/docbuilder/dtd/application.dtd create mode 100644 lib/docbuilder/dtd/appref.dtd create mode 100644 lib/docbuilder/dtd/book.dtd create mode 100644 lib/docbuilder/dtd/bookinsidecover.dtd create mode 100644 lib/docbuilder/dtd/chapter.dtd create mode 100644 lib/docbuilder/dtd/cites.dtd create mode 100644 lib/docbuilder/dtd/common.dtd create mode 100644 lib/docbuilder/dtd/common.entities.dtd create mode 100644 lib/docbuilder/dtd/common.header.dtd create mode 100644 lib/docbuilder/dtd/common.image.dtd create mode 100644 lib/docbuilder/dtd/common.refs.dtd create mode 100644 lib/docbuilder/dtd/common.table.dtd create mode 100644 lib/docbuilder/dtd/comref.dtd create mode 100644 lib/docbuilder/dtd/cref.dtd create mode 100644 lib/docbuilder/dtd/erlref.dtd create mode 100644 lib/docbuilder/dtd/fascicules.dtd create mode 100644 lib/docbuilder/dtd/fileref.dtd create mode 100644 lib/docbuilder/dtd/part.dtd create mode 100644 lib/docbuilder/dtd/report.dtd create mode 100644 lib/docbuilder/dtd/terms.dtd create mode 100644 lib/docbuilder/dtd/xhtml-lat1.ent create mode 100644 lib/docbuilder/dtd/xhtml-special.ent create mode 100644 lib/docbuilder/dtd/xhtml-symbol.ent create mode 100644 lib/docbuilder/dtd/xhtml1-frameset.dtd create mode 100644 lib/docbuilder/dtd/xhtml1-strict.dtd create mode 100644 lib/docbuilder/dtd/xhtml1-transitional.dtd create mode 100644 lib/docbuilder/ebin/.gitignore create mode 100644 lib/docbuilder/etc/Makefile create mode 100644 lib/docbuilder/etc/note.gif create mode 100644 lib/docbuilder/etc/warning.gif create mode 100644 lib/docbuilder/info create mode 100644 lib/docbuilder/src/Makefile create mode 100644 lib/docbuilder/src/docb_edoc_xml_cb.erl create mode 100644 lib/docbuilder/src/docb_gen.erl create mode 100644 lib/docbuilder/src/docb_html.erl create mode 100644 lib/docbuilder/src/docb_html_layout.erl create mode 100644 lib/docbuilder/src/docb_html_ref.erl create mode 100644 lib/docbuilder/src/docb_html_util.erl create mode 100644 lib/docbuilder/src/docb_html_util_iso.erl create mode 100644 lib/docbuilder/src/docb_main.erl create mode 100644 lib/docbuilder/src/docb_pretty_format.erl create mode 100644 lib/docbuilder/src/docb_tr_application2html.erl create mode 100644 lib/docbuilder/src/docb_tr_appref2html.erl create mode 100644 lib/docbuilder/src/docb_tr_chapter2html.erl create mode 100644 lib/docbuilder/src/docb_tr_cite2html.erl create mode 100644 lib/docbuilder/src/docb_tr_comref2html.erl create mode 100644 lib/docbuilder/src/docb_tr_cref2html.erl create mode 100644 lib/docbuilder/src/docb_tr_erlref2html.erl create mode 100644 lib/docbuilder/src/docb_tr_fileref2html.erl create mode 100644 lib/docbuilder/src/docb_tr_first2html.erl create mode 100644 lib/docbuilder/src/docb_tr_index2html.erl create mode 100644 lib/docbuilder/src/docb_tr_part2html.erl create mode 100644 lib/docbuilder/src/docb_tr_refs2kwic.erl create mode 100644 lib/docbuilder/src/docb_tr_report2html.erl create mode 100644 lib/docbuilder/src/docb_tr_term2html.erl create mode 100644 lib/docbuilder/src/docb_transform.erl create mode 100644 lib/docbuilder/src/docb_util.erl create mode 100644 lib/docbuilder/src/docb_util.hrl create mode 100644 lib/docbuilder/src/docb_xmerl_tree_cb.erl create mode 100644 lib/docbuilder/src/docb_xmerl_xml_cb.erl create mode 100644 lib/docbuilder/src/docb_xml_check.erl create mode 100644 lib/docbuilder/src/docbuilder.app.src create mode 100644 lib/docbuilder/src/docbuilder.appup.src create mode 100644 lib/docbuilder/test/Makefile create mode 100644 lib/docbuilder/test/docb_SUITE.erl create mode 100755 lib/docbuilder/test/docb_SUITE_data/cdata_problem.xml create mode 100644 lib/docbuilder/vsn.mk create mode 100755 lib/docbuilder/xsd/application.xsd create mode 100755 lib/docbuilder/xsd/appref.xsd create mode 100755 lib/docbuilder/xsd/book.xsd create mode 100755 lib/docbuilder/xsd/chapter.xsd create mode 100755 lib/docbuilder/xsd/common.entities.xsd create mode 100755 lib/docbuilder/xsd/common.header.xsd create mode 100755 lib/docbuilder/xsd/common.image.xsd create mode 100755 lib/docbuilder/xsd/common.refs.xsd create mode 100755 lib/docbuilder/xsd/common.table.xsd create mode 100755 lib/docbuilder/xsd/common.xsd create mode 100755 lib/docbuilder/xsd/comref.xsd create mode 100755 lib/docbuilder/xsd/cref.xsd create mode 100755 lib/docbuilder/xsd/erlref.xsd create mode 100755 lib/docbuilder/xsd/fascicules.xsd create mode 100755 lib/docbuilder/xsd/fileref.xsd create mode 100755 lib/docbuilder/xsd/part.xsd (limited to 'lib/docbuilder') diff --git a/lib/docbuilder/AUTHORS b/lib/docbuilder/AUTHORS new file mode 100644 index 0000000000..4f2a8e9361 --- /dev/null +++ b/lib/docbuilder/AUTHORS @@ -0,0 +1,10 @@ +Docbuilder is a rewrite of the Old docbuilder +and takes XML as input instead of SGML. +Docbuilder makes use of xmerl for parsing XML +and produces HTML. Everything is written in Erlang +and there are no dependencies to external tools. + +Original Authors: +Gunilla Arendt + +Contributors: diff --git a/lib/docbuilder/Makefile b/lib/docbuilder/Makefile new file mode 100644 index 0000000000..21f42421d6 --- /dev/null +++ b/lib/docbuilder/Makefile @@ -0,0 +1,37 @@ +# ``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 = src dtd etc doc/src + +include vsn.mk +VSN = $(DOCB_VSN) + +SPECIAL_TARGETS = + +# +# Default Subdir Targets +# +include $(ERL_TOP)/make/otp_subdir.mk + + diff --git a/lib/docbuilder/doc/html/.gitignore b/lib/docbuilder/doc/html/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/docbuilder/doc/man3/.gitignore b/lib/docbuilder/doc/man3/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/docbuilder/doc/man6/.gitignore b/lib/docbuilder/doc/man6/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/docbuilder/doc/pdf/.gitignore b/lib/docbuilder/doc/pdf/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/docbuilder/doc/src/Makefile b/lib/docbuilder/doc/src/Makefile new file mode 100644 index 0000000000..ae34266844 --- /dev/null +++ b/lib/docbuilder/doc/src/Makefile @@ -0,0 +1,132 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 1997-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=$(DOCB_VSN) +APPLICATION=docbuilder + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- +XML_APPLICATION_FILES = ref_man.xml +XML_REF3_FILES = \ + docb_gen.xml \ + docb_transform.xml \ + docb_xml_check.xml +XML_REF6_FILES = \ + docbuilder_app.xml + +XML_PART_FILES = part.xml part_notes.xml +XML_CHAPTER_FILES = \ + overview.xml \ + user_guide_dtds.xml \ + refman_dtds.xml \ + fasc_dtds.xml \ + header_tags.xml \ + block_tags.xml \ + inline_tags.xml \ + character_entities.xml \ + notes.xml + +BOOK_FILES = book.xml + +GIF_FILES = \ + man.gif + + +XML_FILES = \ + $(BOOK_FILES) $(XML_CHAPTER_FILES) \ + $(XML_PART_FILES) $(XML_REF3_FILES) $(XML_REF6_FILES) \ + $(XML_APPLICATION_FILES) + +# ---------------------------------------------------- + +HTML_FILES = \ + $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \ + $(XML_PART_FILES:%.xml=$(HTMLDIR)/%.html) + +INFO_FILE = ../../info + +MAN3_FILES = $(XML_REF3_FILES:%.xml=$(MAN3DIR)/%.3) +MAN6_FILES = $(XML_REF6_FILES:%_app.xml=$(MAN6DIR)/%.6) + +HTML_REF_MAN_FILE = $(HTMLDIR)/index.html + +TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- +DVIPS_FLAGS += + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +$(HTMLDIR)/%.gif: %.gif + $(INSTALL_DATA) $< $@ + +docs: pdf html man + +$(TOP_PDF_FILE): $(XML_FILES) + +pdf: $(TOP_PDF_FILE) + +html: gifs $(HTML_REF_MAN_FILE) + +man: $(MAN3_FILES) $(MAN6_FILES) + +gifs: $(GIF_FILES:%=$(HTMLDIR)/%) + +debug opt: + +clean clean_docs: + rm -rf $(HTMLDIR)/* + rm -f $(MAN3DIR)/* + rm -f $(MAN6DIR)/* + rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) + rm -f errs core *~ + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + +release_docs_spec: docs + $(INSTALL_DIR) $(RELSYSDIR)/doc/pdf + $(INSTALL_DATA) $(TOP_PDF_FILE) $(RELSYSDIR)/doc/pdf + $(INSTALL_DIR) $(RELSYSDIR)/doc/html + $(INSTALL_DATA) $(HTMLDIR)/* \ + $(RELSYSDIR)/doc/html + $(INSTALL_DATA) $(INFO_FILE) $(RELSYSDIR) + $(INSTALL_DIR) $(RELEASE_PATH)/man/man3 + $(INSTALL_DATA) $(MAN3DIR)/* $(RELEASE_PATH)/man/man3 + $(INSTALL_DIR) $(RELEASE_PATH)/man/man6 + $(INSTALL_DATA) $(MAN6_FILES) $(RELEASE_PATH)/man/man6 + +release_spec: diff --git a/lib/docbuilder/doc/src/block_tags.xml b/lib/docbuilder/doc/src/block_tags.xml new file mode 100644 index 0000000000..f5ba083f38 --- /dev/null +++ b/lib/docbuilder/doc/src/block_tags.xml @@ -0,0 +1,431 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + + Block Tags + + + + + block_tags.xml +
+ +

Block tags typically define a separate block of information, such + as a paragraph or a list.

+ +

The following subset of block tags are common for all DTDs in + the DocBuilder DTD suite: + + <p>, + <pre>, + <code>, + <list>, + <taglist>, + <codeinclude> and + <erleval>. +

+ +
+ + <br> - Line Break + +

Forces a newline. Example:

+
+Eat yourself<br/>senseless!
+    
+

results in:

+

Eat yourself
senseless!

+ +

The ]]> tag is both a block- and an inline + tag.

+
+ +
+ + <code> - Code Example + +

Highlight code examples. Example:

+
+<code>
+sum([H|T]) ->
+    H + sum(T);
+sum([]) ->
+    0.
+</code>
+    
+

results in:

+ +sum([H|T]) -> + H + sum(T); +sum([]) -> + 0. + + +

There is an attribute type = "erl" | "c" | "none", but + currently this attribute is ignored by DocBuilder. Default value + is "none"

+ + +

No tags are allowed within the tag and no + character + entities are expanded.

+
+
+ +
+ + <codeinclude> - Code Inclusion + +

Include external code snippets. The attribute file + gives the file name and tag defines a string which + delimits the code snippet. Example:

+
+<codeinclude file="gazonk" tag="%% Erlang example"/>
+    
+

results in:

+ + +

provided there is a file named gazonk looking like this: +

+ +... + +%% Erlang example +-module(gazonk). + +start() -> + {error,"Pid required!"}. +start(Pid) -> + spawn(fun() -> init(Pid) end). +%% Erlang example + +... + + +

If the tag attribute is omitted, the whole file is + included.

+ +

There is also an attribute type = "erl" | "c" | "none", but + currently this attribute is ignored by DocBuilder. Default value + is "none"

+
+ +
+ + <erleval> - Erlang Evaluation + +

Include the result from evaluating an Erlang expression. Example: +

+ + ]]> +

results in:

+ + +

Note the '.' and space after the expression.

+
+ +
+ + <list> - List + +

The attribute type = "ordered"|"bulleted" decides if + the list is numbered or bulleted. Default is "bulleted". +

+ +

Lists contains list items, tag ]]>, which + can contain plain text, + the common subset of block + tags and inline + tags. Example:

+
+<list type="ordered">
+  <item>Askosal:
+    <list>
+      <item>Nullalisis</item>
+      <item>Facilisis</item>
+    </list>
+  </item>
+  <item>Ankara</item>
+</list>
+    
+

results in:

+ + +

Askosal:

+ + Nullalisis + Facilisis + +
+ Ankara +
+
+ +
+ + <marker> - Marker + +

Used as an anchor for hypertext references. The + ]]> tag is both a block- and an inline + tag and is described in + the Inline Tags + section.

+
+ +
+ + <p> - Paragraph + +

Paragraphs contain plain text and + inline tags. Example:

+
+<p>I call specific attention to
+  the authority given by the <em>21st Amendment</em>
+  to the Constitution to prohibit transportation
+  or importation of intoxicating liquors into
+  any State in violation of the laws of such
+  State.</p>
+    
+

results in:

+

I call specific attention to + the authority given by the 21st Amendment + to the Constitution to prohibit transportation + or importation of intoxicating liquors into + any State in violation of the laws of such + State.

+
+ +
+ + <note> - Note + +

Highlights a note. Can contain block tags except + ]]>, ]]>, + ]]> and ]]>. + Example:

+
+<note>
+  <p>This function is mainly intended for debugging.</p>
+</note>
+  
+

results in:

+ +

This function is mainly intended for debugging.

+
+
+ +
+ + <pre> - Pre-formatted Text + +

Used for documentation of system interaction. Can contain text, + seealso, + url and + ]]> tags.

+ +

The ]]> tag is used to highlight user + input. Example:

+
+<pre>
+$ <input>erl</input>
+Erlang (BEAM) emulator version 5.5.3 [async-threads:0] [hipe] [kernel-poll:false]
+
+Eshell V5.5.3  (abort with ^G)
+1> <input>pwd().</input>
+/home/user
+2> <input>halt().</input>
+</pre>
+    
+

results in:

+
+$ erl
+Erlang (BEAM) emulator version 5.5.3 [async-threads:0] [hipe] [kernel-poll:false]
+
+Eshell V5.5.3  (abort with ^G)
+1> pwd().
+/home/user
+2> halt().
+    
+ +

All character + entities are expanded.

+
+ +
+ + <quote> - Quotation + +

Highlight quotations from other works, or dialog spoken by + characters in a narrative. Contains one or more + <p> tags. Example:

+
+<p>Whereas Section 217(a) of the Act of Congress entitled
+"An Act ..." approved June 16, 1933, provides as follows:</p>
+<quote>
+  <p>Section 217(a) The President shall proclaim the law.</p>
+</quote>
+    
+

results in:

+

Whereas Section 217(a) of the Act of Congress entitled + "An Act ..." approved June 16, 1933, provides as follows:

+ +

Section 217(a) The President shall proclaim the law.

+
+
+ +
+ + + <taglist> - Definition List + +

Definition lists contains pairs of tags, + ]]>, and list items, + ]]>.

+ +

]]> can contain plain text, + <c>, + <em>, + <seealso> + and <url> + tags.

+ +

]]> can contain plain text, + the common subset of block + tags and inline + tags. Example:

+
+<taglist>
+  <tag><c>eacces</c></tag>
+  <item>Permission denied.</item>
+  <tag><c>enoent</c></tag>
+  <item>No such file or directory.</item>
+</taglist>
+    
+

results in:

+ + eacces + Permission denied. + enoent + No such file or directory. + +
+ +
+ + <warning> - Warning + +

Highlights a warning. Can contain block tags except + ]]>, ]]>, + ]]> and ]]>. + Example:

+
+<warning>
+  <p>This function might be removed in a future version without
+    prior warning.</p>
+</warning>
+  
+

results in:

+ +

This function might be removed in a future version without + prior warning.

+
+
+ +
+ + + <image> - Image + +

Graphics is imported using the ]]> tag. + An image caption ]]>, containing plain + text, must be supplied. Example:

+
+<image file="man">
+  <icaption>A Silly Man</icaption>
+</image>
+    
+

results in:

+ + A Silly Man + + +

This assumes that man.gif exists in the current directory. +

+
+ +
+ + + + + <table> - Table + +

The table format is similar to how tables are described in HTML + 3.2. A table contains one or more rows, ]]>, + and a table caption ]]>, containing + plain text.

+ +

Each row contains one or more cells, ]]>. + The attributes align = "left"|"center"|"right" and + valign = "top"|"middle"|"bottom" decides how text is + aligned in the cell horizontally and vertically. Default is + "left" and "middle".

+ +

Each cell contains plain text and + inline tags. Example:

+

+      
+        Boys
+        Girls
+      
+      
+        Juda
+        Susy
+      
+      
+        Anders
+        Victoria
+      
+      A table caption
+    
+    ]]>
+

results in:

+ + + Boys + Girls + + + Juda + Susy + + + Anders + Victoria + + A table caption +
+
+
+ diff --git a/lib/docbuilder/doc/src/book.xml b/lib/docbuilder/doc/src/book.xml new file mode 100644 index 0000000000..a13d56dd8a --- /dev/null +++ b/lib/docbuilder/doc/src/book.xml @@ -0,0 +1,50 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + + DocBuilder + + + + +
+ + + Docbuilder + + + + + + + + + + + + + + + + +
+ diff --git a/lib/docbuilder/doc/src/character_entities.xml b/lib/docbuilder/doc/src/character_entities.xml new file mode 100644 index 0000000000..e78cf0ebec --- /dev/null +++ b/lib/docbuilder/doc/src/character_entities.xml @@ -0,0 +1,546 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + + Character Entities + + + + + character_entities.xml +
+ +
+ Added Latin 1 + +

The DocBuilder DTD suite uses the same character entities as + defined in HTML 3.2 + (ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML). That is: + for an & (ampersand), use the entity: &amp;, for + ö use the entity &ouml; and so on.

+ + + + Character + Entity + Description + + + & + &amp; + ampersand + + + > + &gt; + greater than + + + < + &lt; + less than + + +   + &nbsp; + no-break space + + + ¡ + &iexcl; + inverted exclamation mark + + + ¢ + &cent; + cent sign + + + £ + &pound; + pound sterling sign + + + ¤ + &curren; + general currency sign + + + ¥ + &yen; + yen sign + + + ¦ + &brvbar; + broken (vertical) bar + + + § + &sect; + section sign + + + ¨ + &uml; + umlaut (dieresis) + + + © + &copy; + copyright sign + + + ª + &ordf; + ordinal indicator, feminine + + + « + &laquo; + angle quotation mark, left + + + ¬ + &not; + not sign + + + ­ + &shy; + soft hyphen + + + ® + &reg; + registered sign + + + ¯ + &macr; + macron + + + ° + &deg; + degree sign + + + ± + &plusmn; + plus-or-minus + + + ² + &sup2; + superscript two + + + ³ + &sup3; + superscript three + + + ´ + &acute; + acute accent + + + µ + &micro; + micro sign + + + + &para; + pilcrow (paragraph sign) + + + · + &middot; + middle dot + + + ¸ + &cedil; + cedilla + + + ¹ + &sup1; + superscript one + + + º + &ordm; + ordinal indicator, masculine + + + » + &raquo; + angle quotation mark, right + + + ¼ + &frac14; + fraction one-quarter + + + ½ + &frac12; + fraction one-half + + + ¾ + &frac34; + fraction three-quarters + + + ¿ + &iquest; + inverted question mark + + + À + &Agrave; + capital A, grave accent + + + Á + &Aacute; + capital A, acute accent + + + Â + &Acirc; + capital A, circumflex accent + + + Ã + &Atilde; + capital A, tilde + + + Ä + &Auml; + capital A, dieresis or umlaut mark + + + Å + &Aring; + capital A, ring + + + Æ + &AElig; + capital AE diphthong (ligature) + + + Ç + &Ccedil; + capital C, cedilla + + + È + &Egrave; + capital E, grave accent + + + É + &Eacute; + capital E, acute accen + + + Ê + &Ecirc; + capital E, circumflex accent + + + Ë + &Euml; + capital E, dieresis or umlaut mark + + + Ì + &Igrave; + capital I, grave accent + + + Í + &Iacute; + capital I, acute accent + + + Î + &Icirc; + capital I, circumflex accent + + + Ï + &Iuml; + capital I, dieresis or umlaut mark + + + Ð + &ETH; + capital Eth, Icelandic + + + Ñ + &Ntilde; + capital N, tilde + + + Ò + &Ograve; + capital O, grave accent + + + Ó + &Oacute; + capital O, acute accent + + + Ô + &Ocirc; + capital O, circumflex accent + + + Õ + &Otilde; + capital O, tilde + + + Ö + &Ouml; + capital O, dieresis or umlaut mark + + + × + &times; + multiply sign + + + Ø + &Oslash; + capital O, slash + + + Ù + &Ugrave; + capital U, grave accent + + + Ú + &Uacute; + capital U, acute accent + + + Û + &Ucirc; + capital U, circumflex accent + + + Ü + &Uuml; + capital U, dieresis or umlaut mark + + + Ý + &Yacute; + capital Y, acute accent + + + Þ + &THORN; + capital THORN, Icelandic + + + ß + &szlig; + small sharp s, German (sz ligature) + + + à + &agrave; + small a, grave accent + + + á + &aacute; + small a, acute accent + + + â + &acirc; + small a, circumflex accent + + + ã + &atilde; + small a, tilde + + + ä + &auml; + small a, dieresis or umlaut mark + + + å + &aring; + small a, ring + + + æ + &aelig; + small ae diphthong (ligature) + + + ç + &ccedil; + small c, cedilla + + + è + &egrave; + small e, grave accent + + + é + &eacute; + small e, acute accent + + + ê + &ecirc; + small e, circumflex accent + + + ë + &euml; + small e, dieresis or umlaut mark + + + ì + &igrave; + small i, grave accent + + + í + &iacute; + small i, acute accent + + + î + &icirc; + small i, circumflex accent + + + ï + &iuml; + small i, dieresis or umlaut mark + + + ð + &eth; + small eth, Icelandic + + + ñ + &ntilde; + small n, tilde + + + ò + &ograve; + small o, grave accent + + + ó + &oacute; + small o, acute accent + + + ô + &ocirc; + small o, circumflex accent + + + õ + &otilde; + small o, tilde + + + ö + &ouml; + small o, dieresis or umlaut mark + + + ÷ + &divide; + divide sign + + + ø + &oslash; + small o, slash + + + ù + &ugrave; + small u, grave accent + + + ú + &uacute; + small u, acute accent + + + û + &ucirc; + small u, circumflex accent + + + ü + &uuml; + small u, dieresis or umlaut mark + + + ý + &yacute; + small y, acute accent + + + þ + &thorn; + small thorn, Icelandic + + + ÿ + &yuml; + small y, dieresis or umlaut mark + + Accented Latin-1 alphabetic characters. +
+
+
+ diff --git a/lib/docbuilder/doc/src/docb_gen.xml b/lib/docbuilder/doc/src/docb_gen.xml new file mode 100644 index 0000000000..49eb79ae24 --- /dev/null +++ b/lib/docbuilder/doc/src/docb_gen.xml @@ -0,0 +1,213 @@ + + + + +
+ + 1999 + 2007 + Ericsson AB, 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. + + The Initial Developer of the Original Code is Ericsson AB. + + docb_gen + + + + +
+ docb_gen + Generate XML from EDoc comments in Erlang source code. + + + +

docb_gen contains functions for generating XML + documentation source code according to the erlref or + chapter DTD from + EDoc comments in Erlang + source code or an overview.edoc file, using EDoc.

+
+ + + + module(File) -> ok | {error, Reason} + module(File, Options) -> ok | {error, Reason} + Generate XML from EDoc comments in Erlang source code. + + + File = string() + Options = [Opt] + Opt = {def,Defs} | {includes,Dirs} | {preprocess,Bool} + | {sort_functions,Bool} + Defs = [{atom(),string()}] + Dirs = [string()] + Bool = bool() + Reason = badfile | {badopt,term()} | term() + + +

Generates XML documentation source code according to + the erlref DTD from EDoc comments File, using + the EDoc application.

+ +

File is an Erlang source file, given with or without + the .erl extension as Name.erl or Name. + The resulting XML file is created in the current working + directory and named Name.xml.

+ +

Options is a list of options, see below.

+ +

Returns ok if successful, and an error tuple + otherwise.

+
+
+ + + users_guide(File) -> ok | {error, Reason} + users_guide(File, Options) -> ok | {error, Reason} + Generate XML from EDoc comments in Erlang source code + + + File -- see module/1,2 + Options -- see module/1,2 + Reason -- see module/1,2 + + +

Like module/1,2 but generates XML source code + according to the chapter DTD from an + overview.edoc or similar file.

+ +

The resulting file is named chapter.xml.

+
+
+
+ +
+ Options + + {def, [{Name,Text}]} + Specifies EDoc macro definitions. See + edoc:get_doc/2. + + {includes, [Dir]} + Specifies directories where EDoc should search for include + files. See + edoc:read_source/2. + + {preprocess, true|false} + Specifies if EDoc should read the source file via the Erlang + preprocessor. Default is false. See + edoc:read_source/2. + + {sort_functions, true|false} + Specifies if the functions in the resulting XML file should + be sorted alphabetically. Default is true. + +
+ +
+ Limitations +

The mapping from the EDoc XHTML output to valid Erlang/OTP XML + is not complete. An attempt has been made to cover the most + commonly used XHTML constructs, but there will still be cases + where XML generation fails or where the resulting XML is + inadequate. This is especially true for users_guide/1,2. +

+ +

Known limitations for some XHTML tags:

+ + ]]> + +

All attributes except the first href or name + attribute are ignored.

+

A href attribute means the ]]> tag + will be transformed to a ]]> or + ]]> tag and an attempt is made to + resolve the reference if necessary.

+ +

A name attribute means the ]]> tag + will be transformed to a ]]> tag.

+
+ + , ,
]]>
+      Cannot contain other tags in Erlang/OTP XML, content is
+	converted to plain text.
+      
+
+      ]]>
+      No corresponding Erlang/OTP XML tag, converted to plain
+	text.
+      
+
+      ]]>
+      No corresponding Erlang/OTP XML tag, converted to plain
+	text.
+      
+
+      , 

, ...]]> + There is no tag corresponding to a header in Erlang/OTP XML, + so these are converted to plain text instead, with + the exception of ]]> and + ]]> tags within overview.edoc, see + part about "chapter DTD" below. + + + ]]> + There is no tag corresponding to superscript in Erlang/OTP + XML, so this is converted to plain text within brackets "(..)". + + + References + The markers automatically inserted by EDoc at each heading + and function will override the markers automatically inserted + by DocBuilder, with the unfortunate result that the links in + the left-hand frame of the User's Guide will not work, and + also that cross referencing a function in a module the usual + Erlang/OTP way + "]]>" does + not work. (But + "]]>" does.) + + + +

erlref DTD

+ + Tables + Tables are not allowed. The contents of a table is + converted to text instead, each row corresponding to one line + of text. + + + +

chapter DTD

+ + Sections + Only two levels of sections. ]]> + (equivalent to EDoc headings "== Heading ==") is + interpreted as start of top-level section, or if there is no + ]]> tag, the entire document is made into + one top-level section. ]]> (equivalent to + EDoc sub-headings ("") is + interpreted as start of second-level section. + + + Tables + Tables without borders are converted to text in the same + manner as for the erlref DTD. + + +

+ +
+ diff --git a/lib/docbuilder/doc/src/docb_transform.xml b/lib/docbuilder/doc/src/docb_transform.xml new file mode 100644 index 0000000000..b8975e2698 --- /dev/null +++ b/lib/docbuilder/doc/src/docb_transform.xml @@ -0,0 +1,224 @@ + + + + +
+ + 2001 + 2007 + Ericsson AB, 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. + + The Initial Developer of the Original Code is Ericsson AB. + + + docb_transform + + + + +
+ docb_transform + Transform XML to HTML + +

docb_transform contains functions for transforming XML + documentation source code to HTML.

+
+ + + + file(File) -> ok | {error, Reason} + file(File, Options) -> ok | {error, Reason} + Transform XML to HTML + + File = string() + Options = [Opt] + Opt -- see below + + +

Transforms XML documentation source code to HTML.

+ +

File is a documentation source file, given with or + without the .xml extension as Name.xml or + Name.

+ +

If File contains XML code according to a basic DTD + (chapter, erlref, ...), the resulting HTML + file is named Name.html.

+ +

If File contains XML code according to a compound DTD + (application or part), several files are + created:

+ + A cover page for the application with two frames, + Name_frame.html. + The contents of the left frame and a front page, + Name.html and Name_first.html. + A bibliography and a glossary, Name_cite.html + and Name_term.html. + In the case of an application DTD an index + is created, Name.kwc and Name_index.html. + + One HTML file for each file included from File. + + Also, if there exists a fascicules.xml file where + the value of the entry attribute for File is + "yes", the cover page is copied to index.html. + + +
+
+
+ +
+ Options + + {html_mod, Module}, Module=atom() + +

A callback module can be used for specifying HTML snippets + that should be included in the generated HTML files, see + below.

+
+ + {outdir, Dir}, Dir=string() + +

Destination for generated files. Default is current working + directory.

+
+ + {number, Number}, Number=int() + +

First chapter number when transforming a chapter + file. Default is 1.

+
+ + {ptype, unix|windows} + +

For path elements, the specified file path should be + presented.

+
+ + silent + +

Silent - no warnings, only error information is printed.

+
+ + {top, Index}, Index=string() + +

Specifies the value of "Top" in the left frame of a front + page, which normally should be some kind of top index file + for the documentation.

+
+ + {vsn, Vsn}, Vsn=string() + +

Application version number. Overrides a version number + defined in the XML document. Visible in the left frame and + on the front page.

+
+ + {term_defs, File}, File=string() + +

Use the global glossary definitions in File, which + should contain a list of tuples {Id, Name, Definition, + Owner}. See the section + <term>, + <termdef> - Glossary in the User's Guide. +

+
+ + {cite_defs, File}, File=string() + +

Use the global bibliography definitions in File, which + should contain a list of tuples {Id, Title, Info, + Owner}. See the section + <cite>, + <citedef> - Bibliography in the User's + Guide.

+
+
+
+ +
+ Callback Module + +

A html_mod callback module can include the functions + specified below. Note that there is no check that the resulting + HTML code is valid. All functions are optional.

+
+ + + + Module:head() -> string() + Snippet to be included in head of a document. + +

Defines a HTML snippet to be included in the head of + a document, after the <HEAD> start tag and + <TITLE> tag:

+
+<HTML>
+<HEAD>
+  <TITLE>...</TITLE>
+  - snippet is included here -
+  ...
+</HEAD>
+...
+</HTML>
+	
+
+
+ + + Module:top() -> string() + Snippet to be included at the top of a document. + + +

Defines a HTML snippet to be included at the top of a + document, after the <BODY> start tag.

+
+
+ + + Module:bottom() -> string() + Snippet to be included at the bottom of a document. + + +

Defines a HTML snippet to be included at the bottom of a + document, before the </BODY> end tag.

+
+
+ + + Module:seealso(SeeAlso) -> Href + + + SeeAlso = Href = string() + + +

When referring to another part of the document, or another + document, the XML tag <seealso> is used: + ...text...]]>. + By default, this is translated to + ...text...]]>.

+ +

This function makes it possible to specify an alternative + translation Href of the marker attribute value + SeeAlso. For example, in OTP this is used to resolve + cross references between applications.

+
+
+
+ +
+ diff --git a/lib/docbuilder/doc/src/docb_xml_check.xml b/lib/docbuilder/doc/src/docb_xml_check.xml new file mode 100644 index 0000000000..7ec456c014 --- /dev/null +++ b/lib/docbuilder/doc/src/docb_xml_check.xml @@ -0,0 +1,59 @@ + + + + +
+ + 2007 + 2007 + Ericsson AB, 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. + + The Initial Developer of the Original Code is Ericsson AB. + + + docb_xml_check + + + + +
+ docb_xml_check + Validate XML documentation source code + +

docb_xml_check contains functions for validating XML + documentation source code.

+
+ + + + validate(File) -> ok | error | {error, badfile} + Validate XML source code. + + File = string() + + +

Validates the XML documentation source code in File. + The .xml extension can be omitted.

+ +

Returns ok if successful, otherwise error information + is printed and the function returns error. + If File does not exist, {error, badfile} is + returned.

+
+
+
+ +
+ diff --git a/lib/docbuilder/doc/src/docbuilder_app.xml b/lib/docbuilder/doc/src/docbuilder_app.xml new file mode 100644 index 0000000000..a1df496258 --- /dev/null +++ b/lib/docbuilder/doc/src/docbuilder_app.xml @@ -0,0 +1,57 @@ + + + + +
+ + 2007 + 2007 + Ericsson AB, 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. + + The Initial Developer of the Original Code is Ericsson AB. + + + docbuilder + + + + +
+ docbuilder + The DocBuilder Application + +

DocBuilder provides functionality for generating HTML + documentation for Erlang modules and Erlang/OTP applications + from XML source code and/or EDoc comments in Erlang source code. +

+
+ +
+ Limitations +

DocBuilder is primarily intended for generating documentation + for Erlang/OTP itself. That is, no attempt has been made to create + a tool suitable for generating documentation in general.

+
+ +
+ See Also +

DocBuilder User's Guide, + docb_gen(3), + docb_transform(3) +

+
+ +
+ diff --git a/lib/docbuilder/doc/src/fasc_dtds.xml b/lib/docbuilder/doc/src/fasc_dtds.xml new file mode 100644 index 0000000000..dec8189b55 --- /dev/null +++ b/lib/docbuilder/doc/src/fasc_dtds.xml @@ -0,0 +1,115 @@ + + + + +
+ + 20072009 + Ericsson AB. 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. + + + + Fascicules DTDs + + + + + fasc_dtds.xml +
+ +
+ The fascicules DTD + +

The fascicules DTD is a special kind of DTD which can be + used to specify the different parts of the documentation, and + which one of those should be shown as default.

+ +

Example:

+ +

+
+
+  
+    User's Guide
+  
+  
+    Reference Manual
+  
+  
+    Release Notes
+  
+
+    ]]>
+ +

In the example, it is specified that the documentation for this + application consists of three parts: User's Guide, where + the "cover page" (with the two frames) is located in + part_frame.html, Reference Manual with the cover page + ref_man_frame.html and Release Notes with the cover page + part_notes_frame.html.

+ +

As a result, at the top of the left frame in the generated HTML + documentation, there will be corresponding links to User's Guide, + Reference Manual and Release Notes.

+ +

The attribute entry="yes" specifies that it is + the Reference Manual which should be shown as default. This means + that when generating the HTML files, application_frame.html + will be copied to index.html.

+ + +

DocBuilder assumes that the XML file written according to + the fascicules DTD is called fascicules.xml.

+
+ +

This file is optional. If it does not exist, there are no links + to other parts of the documentation (as they are not known) in + the left frame, and no index.html is created.

+
+ +
+ + <fascicules> + +

Top level tag for the fascicules DTD.

+ +

Contains one or more + <fascicule>.

+
+ +
+ + <fascicule> + +

Specifies properties for one "part" of the documentation for an + application.

+ +

Contains plain text, the name of this part.

+ +

The file attribute should specify the file name for + the corresponding part or application, without + the .xml extension.

+ +

The href attribute should specify the file name for + the corresponding HTML cover page file, without the .html + extension.

+ +

The optional entry="yes"|"no" attribute specifies if + the HTML cover page should be copied to index.html or + not. Default is "no".

+
+
+ diff --git a/lib/docbuilder/doc/src/fascicules.xml b/lib/docbuilder/doc/src/fascicules.xml new file mode 100644 index 0000000000..1b9d6bc94d --- /dev/null +++ b/lib/docbuilder/doc/src/fascicules.xml @@ -0,0 +1,15 @@ + + + + + + User's Guide + + + Reference Manual + + + Release Notes + + + diff --git a/lib/docbuilder/doc/src/gazonk b/lib/docbuilder/doc/src/gazonk new file mode 100644 index 0000000000..1cf0b8f7bc --- /dev/null +++ b/lib/docbuilder/doc/src/gazonk @@ -0,0 +1,17 @@ +This example code is used in block_tags.xml. + +%% Erlang example +-module(gazonk). + +start() -> + {error,"Pid required!"}. + +start(Pid) -> + spawn(smalltalk,main,[]). +%% Erlang example + +// A little C example +int main() { + for(;;); +} +// A little C example diff --git a/lib/docbuilder/doc/src/header_tags.xml b/lib/docbuilder/doc/src/header_tags.xml new file mode 100644 index 0000000000..b1456d679a --- /dev/null +++ b/lib/docbuilder/doc/src/header_tags.xml @@ -0,0 +1,183 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + + Header Tags + + + + + header_tags.xml +
+ +

Each document begins with a header part, which looks the same for + all DTDs. Here the title of the document is specified, as well as + administrative data like who is responsible for the document, which + version is it, when was it last changed and such.

+ +

An full header looks like:

+
+<header>
+  <copyright>...</copyright>
+  <legalnotice>...</legalnotice>
+  <title>...</title>
+  <prepared>...</prepared>
+  <responsible>...</responsible>
+  <docno>...</docno>
+  <approved>...</approved>
+  <checked>...</checked>
+  <date>...</date>
+  <rev>...</rev>
+  <file>...</file>
+</header>
+  
+ +
+ + <header> + +

Top level tag for the header part.

+
+ +
+ + <copyright> + +

The copyright element holds information about date(s) and holder(s) of + a document copyright. The copyright element is optional. + The copyright element has an inner structure containing one or + more + year elements followed by zero of more holder elements.
+ See example below: +

+ + 1997 + 2007 + Ericsson AB + + ]]> +
+ +
+ + <legalnotice> + +

The legalnotice element is used to express copyright, trademark, + license, and other legal formalities of a document. The element contains + only PCDATA in the same manner as code and pre. +

+
+ +
+ + <title> + +

For part and application documents, this will be + the title of the document, visible in the left frame and on + the front page.

+ +

For chapter documents, this will be the chapter name.

+ +

For reference manual documents, this tag is ignored.

+
+ +
+ <shorttitle> + +

This optional tag is ignored by DocBuilder. It will likely be + removed in the future.

+
+ +
+ + <prepared> + +

This tag is intended for administrative use and is ignored by + DocBuilder.

+
+ +
+ + <responsible> + +

This optional tag is intended for administrative use and is + ignored by DocBuilder.

+
+ +
+ + <docno> + +

Document number.

+ +

For part and application documents, the document + number is visible in the left frame and on the front page.

+ +

For other types of documents, this tag is ignored.

+
+ +
+ + <approved> + +

This optional tag is intended for administrative use and is + ignored by DocBuilder.

+
+ +
+ + <checked> + +

This optional tag is intended for administrative use and is + ignored by DocBuilder.

+
+ +
+ + <date> + +

This tag is intended for administrative use and is ignored by + DocBuilder.

+
+ +
+ + <rev> + +

Document version.

+ +

For part and application documents, the document + version is visible in the left frame and on the front page.

+ +

For other types of documents, this tag is ignored.

+
+ +
+ + <file> + +

This optional tag is intended for administrative use and is + ignored by DocBuilder.

+
+
+ diff --git a/lib/docbuilder/doc/src/inline_tags.xml b/lib/docbuilder/doc/src/inline_tags.xml new file mode 100644 index 0000000000..e1d392076a --- /dev/null +++ b/lib/docbuilder/doc/src/inline_tags.xml @@ -0,0 +1,254 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + + Inline Tags + + + + + inline_tags.xml +
+ +

Inline tags are typically used within block tags, for example to + highlight a word within a paragraph.

+ +
+ + <br> - Line Break + +

Forces a newline. The ]]> tag is both a + block- and an inline tag and is described in + the Block Tags + section.

+
+ +
+ + <c> - Code + +

Highlights things like variables and file names in a text flow. + Can contain plain text only. Newlines and tabs are ignored as + opposed to the code + tag. All character + entities are expanded. Example:

+
+<p>Returns <c>true</c> if <c>Term</c> is an integer.</p>
+    
+

results in:

+

Returns true if Term is an integer.

+
+ +
+ + <em> - Emphasis + +

Highlights words which are important within a text flow. Example: +

+
+<p>The application <em>must</em> be up and running.</p>
+    
+

results in:

+

The application must be up and running.

+ +

Contains plain text or a + <c> tag.

+
+ +
+ + <marker> - Marker + +

Used as an anchor for hypertext references. The id + attribute defines the name of the marker. Example:

+ +
+<marker id="marker_example"/>
+    
+ +

The <seealso> tag + is used to refer to the marker.

+ +

The ]]> tag is both a block- and an + inline tag.

+
+ +
+ + <path> - Path + +

Highlights file paths. The attributes unix and + windows makes it possible to specify different paths for + different file path notations. Default for both are "". + Example:

+
+<p>Look at the <path unix=".profile" windows="win.ini">start-up file</path>
+  if you intend to alter the initial behavior.</p>
+    
+

If no ptype option is specified when calling + docb_transform:file/1,2, + this simply results in:

+

"Look at the start-up file + if you intend to alter the initial behavior."

+ +

If both the options {ptype,unix} and + {ptype,windows} are specified, the example instead results + in:

+

"Look at the start-up file + if you intend to alter the initial behavior."

+
+ +
+ + <seealso> - Local Cross Reference + +

A cross reference (hypertext link) to a marker in the same file, + a marker in another file, or (the top of) another file, given by + the marker attribute. Must contain plain text. Examples: +

+ +
marker example
+    ]]>
+

results in: + marker example + (a hypertext link to the marker example above).

+ +
marker tag
+    ]]>
+

results in: + marker tag + (a hypertext link to the marker section in the Block Tags + chapter).

+ +
Overview
+    ]]>
+

results in: + Overview + (a hypertext link to the Overview chapter).

+ +

Note the use of "#" before the name of the marker. Note also + that the filename extension .html is omitted. This is + because the default behavior of DocBuilder is to translate + text]]> + to text]]>.

+ +

The default behaviour can be modified by using the callback + module option to docb_transform:file/1,2 and defining a + callback function + Module:seealso/1. + This possibility is for example used in OTP to resolve cross + references between applications.

+
+ +
+ + <url> - Non-Local Cross Reference + +

A reference to a file outside the documentation, a web address or + similar, given by the href attribute. Must contain plain + text. Example:

+
erlang.org
+    ]]>
+

results in: erlang.org +

+
+ +
+ + + <term>, <termdef> - Glossary + +

Used to highlight a term with a local (for this document only) or + global definition. The identity of the term is given by + the id attribute.

+ +

For a locally defined term, the tag contains a + <termdef>, which in turn contains an explanation of + the term as plain text. Example:

+
Hyper-Text Markup Language
+      ]]>
+ +

For a globally defined term, the tag is empty. Example:

+

+      ]]>
+ +

Global definitions are given to DocBuilder in a file, using the + docb_transform:file/1,2 + option term_defs. The file should contain a list of tuples, + one for each term definition, on the format + {Id,Name,Definition,Owner}. The Owner part is just + for administration, if there are several people contributing to a + term definition file. Example:

+
+[...,
+ {"HTML", "HTML", "Hyper-Text Markup Language", "Gunilla"},
+ ...].
+    
+ +

DocBuilder will collect both local and global definitions in a + glossary, which can be reached from a link in the left frame of + the HTML documentation.

+ +

In the generated HTML, it is the term name which will be visible. + For locally defined terms, the id and the name are the same. + The name has a hypertext link to the definition in the glossary. + Example:

+
Hyper-Text Markup Language
+      ]]>
+

results in: Hyper-Text Markup Language +

+ +

If a term is defined both locally and globally, the global + definition takes precedence.

+
+ +
+ + + <cite>, <citedef> - Bibliography + +

Works the same way as <term> and + <termdef>, but for a bibliography list rather than + a glossary.

+ +

A global bibliography list is given to DocBuilder in a file, + using the docb_transform:file/1,2 + option cite_defs. The file should contain a list of tuples, + one for each cite, on the format + {Id,Title,Info,Owner}. The Owner part is just + for administration, if there are several people contributing to a + bibliography file. Example:

+
+[...,
+ {"erlbook","Concurrent Programming in ERLANG","J. Armstrong, R. Virding, C. Wikström, M. Williams, Concurrent Programming in ERLANG, Prentice Hall, 1996, ISBN 0-13-508301-X","jocke"},
+ ...].
+    
+
+
+ diff --git a/lib/docbuilder/doc/src/make.dep b/lib/docbuilder/doc/src/make.dep new file mode 100644 index 0000000000..d9b075e114 --- /dev/null +++ b/lib/docbuilder/doc/src/make.dep @@ -0,0 +1,33 @@ +# ---------------------------------------------------- +# >>>> Do not edit this file <<<< +# This file was automaticly generated by +# /home/otp/bin/docdepend +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# TeX files that the DVI file depend on +# ---------------------------------------------------- + +book.dvi: block_tags.tex book.tex character_entities.tex \ + docb_gen.tex docb_transform.tex docb_xml_check.tex \ + docbuilder_app.tex fasc_dtds.tex header_tags.tex \ + inline_tags.tex overview.tex part.tex ref_man.tex \ + refman_dtds.tex user_guide_dtds.tex + +# ---------------------------------------------------- +# Source inlined when transforming from source to LaTeX +# ---------------------------------------------------- + +block_tags.tex: gazonk + +book.tex: ref_man.xml + +inline_tags.tex: ../../../../system/doc/definitions/term.defs + +# ---------------------------------------------------- +# Pictures that the DVI file depend on +# ---------------------------------------------------- + +book.dvi: man.ps + diff --git a/lib/docbuilder/doc/src/man.gif b/lib/docbuilder/doc/src/man.gif new file mode 100644 index 0000000000..8656c7443d Binary files /dev/null and b/lib/docbuilder/doc/src/man.gif differ diff --git a/lib/docbuilder/doc/src/man.ps b/lib/docbuilder/doc/src/man.ps new file mode 100644 index 0000000000..b4d7ef7636 --- /dev/null +++ b/lib/docbuilder/doc/src/man.ps @@ -0,0 +1,750 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /clearcase/otp/internal_tools/sgml/test/man.ps +%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley +%%BoundingBox: 243 308 369 484 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define string to hold a scanline's worth of data +/pix 126 string def + +% define space for color conversions +/grays 126 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +243 308 translate + +% size of image (on paper, in 1/72inch coords) +126.00000 175.96800 scale + +126 176 8 % dimensions of data +[126 0 0 -176 0 176] % mapping matrix +{currentfile pix readhexstring pop} +image + +110000110011111111111100111111110011110011111111111100111111112222222222 +33445544446655665555665566666655666666888888778899888899aabbaabbbbbbaabb +bbaaaaaaaabbbbbbaabbccddbbaaaaccccccddddccddddccbbccccccbbccccaabbaaaaaa +9999aaaa8899887777554455666655555544 +000000110011110000001100112222111111001111111100001111111111112222112233 +55334444446666775544555555775577777766888888889988889999aaccbbaabb99aaaa +bbbbaaaaaaaabbbbccccccccccccbbccccccccddccddddccbbaaccddccbbaaccbbbbaaaa +999999889977667755554455666655444444 +110011000011000000111111111100111100112211111111110011111111112222222233 +3344444455446677665555667777667788888888667788aa88999999aabbaabbaa889999 +aabbbbbbaaaaaabbddccccccbbccccccbbaaccccccccccccbbccccccccbbbbbbbbaaaa99 +9999aa888877666655555555555544333344 +110000110011110000001111111111000011001122110011111111002211222211224433 +3333444444556677666655667777667777888877666688998899aa99aabbaaaaaaaabbaa +99aabbaabbbbbbbbbbccbbddaabbccbbaa99ccddccccccbbccccccddccbbbbaaccaa9988 +889988887766665566665544443344554444 +000000000000110011000000110000110000001111000000111100221111111133222222 +33444433444455667777555555776666778888667777778888aa998888bbaa99aaaaaabb +bbbbbbaabbccbbbbbbccbbbbbbccccaabbbbbbccccccbbbbbbbbccbbbbbbbbbbbbaa7788 +aa9988889966666655666655553355556644 +110011111111111100111100110011000000001100002211111122221122111122222222 +33443333334455776666776666667766778855668866777788448899889988889999bbaa +aaaabbaaaabbbbaabbbbbbbbbbbbaa99bbaabbccddccccccbbccbbbbaabbbbaaaa777788 +aa9999aa9988776677777755555544556655 +110000001111111122111111000000001111110011111111110022111111111133222233 +223322445555445544667777667777667777887788887799883377999999998899aaaaaa +99aabbbbccbbbbbbbbbbaaaaaabb99aaaabbbbbbccccccbbccccbbbbaabbaaccaa886688 +9999aaaa9988888866667744555544445544 +110000111122111111221100111111110011111111111100111111222222221122333333 +22222244556655445555667788778888aaaa88aa889999aabbaaaa998888998899aa99aa +bbaabbccbbbbaaaabbbbbbbbbbbbaabbaaaaccccccbbccddccbbaabbaabbaabb99888888 +99aa99aa9988888866446655554444444444 +110000001111111111110011110000111100221111001111000011222222222222333344 +223322444466664455667766777788777755556666333344557788aa9999888888aa88aa +aabbbbaabbaaccbbaaaaaaccbbccaa99bbccccccccbbccccccbbbbbbbbaabbaaaa99aa88 +999988999988887766664455445555555544 +110011111100001111111111110000000011111111110011111122111111112233222222 +443333555544444455777788775522000000000000000000000000447799aaaa99888899 +aaaabbaaaaccbbaaaabbbbbbbbaa7788bbddccccbbbbbbbbccbbbbaabbaaaaaaaaaa9999 +aa999988aa99887766666655444455445544 +000000110011110000110000110011001100001111110000111122112211112211222222 +5544444455443333446677772200000000000000000000000000000000337799999999aa +9999aabbbbbbaaaa88aaaabbbb889988ccccccbbccbbbbaaaa9999bb8855889999999988 +998888998888886655667755554455554433 +110011001111001100001100111111000000001100111100111111222211113333222211 +44555544444433445555550000000000000000000000000011000000000000003377aa99 +888899aa99aa9999aaaabbaabb99aabbaabbbbccaabbaaaabb88aaaa995588aaaaaa8888 +8888aa998888887755777766554444332222 +111111110011111111001111001111110000000011000011001111111122332222223322 +334466554444444455441100000000000000000000000000000000001155220000113366 +998888aa99998899bbbbaabbbbaaaaaabbbbbbbbbbaabbaaaa99aaaa8888aa9999889988 +7799aa888888665566666655554433334422 +221111110011000011111111110000000000110011110000111111001111333311223333 +443344443344554488440011553300000000000000000000000000227788883300000011 +4444559999887799aaaaaaccbbaaaa9988ccccbbaabbbbaaaa99aa9988aa999988888888 +776688888877667766554455444444444433 +221111110011111100110011000011000000000000110000110011001111112222221122 +2222333333111111448899ccffddbb77442222221111000000000044bbddccaa33000000 +00000000558888998899bbaabbaabbaa99bbaabbaaaabbaa99aa99999988778888777777 +663355778877776666665544444433333322 +221100222211001111112200111111000011000000000011001100111111112211112211 +332244220011000055ddffeeeeeeeeeeddddddeeddcc88330000000044ddddcc55000000 +000000000077aaaa999999aaaabbbbbbaa99aabbbbaaaabbaaaaaa999999888888557755 +664466666677666655667755443333223322 +221111222211221111111100000011110000110000001100111111110011111122112222 +3322000000000044ddffffeeffeeeeeeeeeeeeeeffeeffdd885511000033aaddaa330011 +2211000000339988889999aaaaaabbaabbbbbbbbbbaaaaaabb99aa8899aa999988665577 +665577777766555544443366443344333322 +221111111122221111001111111100000000000000001111111111111111111111223344 +22000000000077ddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffeebb440000005588661100 +11000000001188888888aa9999aabbbbbbaaaabbaabbbbbbaa8899888899888888776666 +556666776666443366555555445533333333 +112211111122221111221100111100110000000000001111001100000000111122112211 +000000000088eeeeeeeeeeeeffeeeeffffeeeeeeffeeeeeeeeeeffee8811000000118866 +0000000000118899888899aaaabbbbbbbbbbbb99aabbaaaaaa9988888877888877555566 +555555666655446655556655444444443344 +221111111100111111110011111111110011001100110000111100110011111111000000 +0000000088ffeeddeeeeeeeeeeeeeeeeeeeeffeeeeffffeeeeeeeeffffbb775566aaeeee +aa332233000088aa88888899bbaaaa99aabbaaaabbaabbbbaaaa88888877888877555555 +445577666655554455555566665544665533 +110000111111110011111111111111110000000000001100111111000011111111110000 +00000088ddddddddddffeeffeeeeeeeeeeeeffeeeeeeeeffeeeeeeeeeeffffffffffeedd +eecc441111002288997788aa99aaaa99aa99aabbbbaabbaaaa9977778888777777776655 +555577776666666666666677775555555555 +001111110011001100111111112211111100110000000011110011111111001111000000 +000022aaddccddddeeeeeeeeeeeeeeeeeeeeeeeeeeffeeffeeeeeeffeeffeeeeeeeeeeee +eeffdd3311110044998899999999aaaaaaaaaabbaabbbbaaaa8888778877888866776677 +665566667755556644665555554444666666 +110011110011111111001100002211111100110011111100111100111111111100000000 +000022bbcccccccceeeeeeeeeeeeeeeeeeeeffeeffeeffffffeeeeffeeffeeffeeeeeeee +eeddeebb6644000088998899bbbbbbaabbbbbbaabbbbbbcc999988888877888877667777 +557777777766665544555555555555665566 +110011221111111111111111111111221100001100110011111111221100221100000000 +00001199aabbccccddeeeeeeeeeeeeeeeeeeeeeeffffeeffeeffeeeeffeeffeeeeeeeeee +eeddeeeebb88110066aa99aabbccbbaabbbbbbaabbbbbbbbbb99aaaa9988777766667777 +666677777777665544665566555566664455 +221111222222111111111111221111111111111111001111111100221122221100000000 +000022aabbbbaaccddeeeeeeeeddeeeeeeffeeeeeeeeffeeffeeffeeffffeeeeeeeeeeee +eeeeeeeeeecc220066aaaaaaaabbbbbbccaabbaaaabbccbbaaaaaa998888886677887777 +777777888866776655667755665566666655 +222211222222111122111122111111000000001111111111111122111122220000000000 +00002299bbaaaabbddeeeeeeddeeffeeeeeeeeeeffeeeeeeeeffeeeeffffffeeeeeeeeee +eeeeeeeeeecc330044aaaabbaabbbbbbaaaabb99aabbbbbbbbaaaa889988888877888888 +887777778888776644777777666677667766 +222222332233222211221111221111110000111111222222222211222222221100000000 +00001188cc99aabbddddddeeeeeeeeeeeeeeffeeeeeeeeeeffeeeeffeeffeeeeeeeeeeee +eeeeeeeeeeee440044bbaabbbbaabbbb9999aaaabbaabbbbbb9999998888887788888899 +887777778888887755776677667755667755 +221122442222222222332211222222111111001111222222221133112222220000000000 +00001177bbaaaaaaeeddeeddeeeeddeeeeeeeeeeeeeeeeeeffeeffffeeeeeeffeeeeeedd +eeeeffeeddffaa0022aabbbbbbbbbbaaaa99bbbbaabbaabbaa9988888888998888887777 +888866777788888888888877666655445566 +331133442233333333332222332211111111111111112222222233221122220000000000 +0000115599aabbccddddeeddeeeeeeeeeeeeeeeeffeeeeffeeffeeffffffeeffeeffddee +eeeeeeeeeeffdd110088bbbbbbccbbaa99bbaabbaaaabbbbbbbb99888888888888666677 +777777778888666677888877775544444455 +332222332222334422222233222233110011222222112233223322222211221100000000 +000000228899aabbddddeeddeeeeeeeeeeeeeeeeffeeeeeeffeeffeeeeffeeffeeeeeedd +eeffeeeeeeeecc220066bbaabbbbbbaaaa999999aaaaaaaa9999aaaa9988888877776688 +888877778888776677887777666666665544 +333311332233333333222222222233331111113322222222223322332222220000000000 +000000225577aabbccddddddeeeeeeeeeeeeeeeeeeeeeeffffffffeeffffeeeeeeeeeeee +eeeeeeeeeeeedd110044bbaaaabbaabb99999999aabbaa999999aa999999998888777788 +888855888888886677777788777777555555 +222211222222224444111122222211222233221133443344332233333322551100000000 +00000022557788aaccddeeddddeeddeeeeeeeeeeffffeeffeeeeffeeeeeeeeffeeffeedd +eeeeeeeeeeeedd33003399aaaabbbbaaaa88999999aaaaaa99aaaabbaaaaaa9999778888 +887766888888885577776666777766556644 +222211222222222233334422222222112233222233554444332222222222440000000000 +0000001144779988bbccddddddffddeeeeeeffeeeeeeeeffffffeeeeeeffeeffffeeeedd +eeeeeeeeeeeedd2200228899aaaaaa88888899999999bbaa99aabbbbbbaa999988888888 +887777778877665566886666666677775566 +443322111133331111222233332222332222332233223333333333332233331100000000 +000000115555668899ddddddddeeeeeeeeffeeffffffeeffeeeeffeeeeeeeeeeeeeeeedd +eeeeeeeeeeeedd2200339999aabbaa889999aaaa99aabbaaaa99bbbbaaaa998899998888 +888888997777775577777777777777666666 +332211223322222222221122223333221122112233333333332244333333330000000000 +0000000033444466aaccccddddeeeeeeeeeeeeffeeeeeeffeeeeeeeeeeffeeeeffffeedd +eeeeeeeeeeeecc2200228899aaaa9988aaaaaaaa99aa99bbaabbaaaa99999988aa999988 +888888887777776677666666776666556644 +332222222233222233332222333333331133332233224433333344554444331100000000 +000000110044777788aaeeeeddeeeeddddddeeeeeeeeeeffeeffeeeeeeeeeeeeeeeedddd +ddeeddeeeeeedd220011aa9999aa999999bbbbbb99bbbbbbbbbbbbaaaaaa999999888899 +998888888888666677556677666655555555 +332222222222333333443333333322443333443344334433444455553333330000000000 +000000002233557788ccccccccaa775555446688ccddcceeeeeeeeeeddeeeeeeeeeedddd +eeddeeeeeeeedd44003399aa88aaaa99aaaaaaaa99bbbbbbbbbbbbbbbbbbaa999999aa88 +888866887788775577667755556655555544 +331122332222444433333333223333333344444444554433445555664444441100000000 +00000000332244889999777788330000000000116688aaddccddddccddddaa88aa99aadd +ddddeeeeeeddee660022aa99999999bb99bbbbaaaabbbbbbbbccbbbbbbbbaa99aaaa8888 +888877776677667755777755445555556655 +331122333333335544554433333322443344555555554433334433556655441100000000 +000000000000225544221100110000000000001111557799ccbb88778877110011003388 +bbddeeeeeeddee55002299aa999999aaaabbaabbaabbbbbbaaaaaabbaaaabbaa99998888 +887777667788666666666666555555554444 +333333333322444444555555444444444455556666555544334455336666551100000000 +000000001111001100000000000000000000000011224455889966111111000000000011 +66aaddeeeeeeee550033aa99aa999999bb99bbccaabbbbaaaaaaaabbaaaabbaabb888888 +667777777777775577554455553344444444 +223344332233555544556666665533335544556655555533446655555555661100000000 +00001100111100000000000011000000000000000011449999bb77000000000000004433 +225588cceeeeff660044aaaa888899aa9999aaaa99aabbaaaaaa99bbbb9999aaaa998888 +886677777777667766555555443355554455 +443344332233556655666655666633555544555555555555555566555555662200000000 +0000001111110000000000001100000000000000000066ddeeee990000000000000066bb +bb88bbcceeeeee880066aaaa9999bb9999aa99998899aa999999aaaabbaaaaaa99889988 +778888776677666655444455665555554433 +443333442233445577665566666655444444666655667766666666666644443300000000 +0000001133220000000000000000000000000000000055eeeeeebb110000000000000022 +bbffddddeeeeff88007799999999aabbaa9999999988aa99999999bbaaaa888877888888 +887777777766666655664455554455443344 +444422335566557766776666555544444455556666555555556666668899aa5500000000 +0000002233220000000000000044110011110000000055ffeeffcc110000000000000000 +0077ddddddddeebb118899999999aaaaaa8888aa88aaaaaa9999aabbaaaa997755889988 +887766777766775555665555444444443344 +555544333344556666556666445566556666555555665566665555335566999922000000 +0000002244332200000000001177663366330000000088eeeeffdd110000001100112200 +000066cceeeeeebb66ccbbaa9999aaaa998899aaaabbbbaa9988aaaabb99998888888877 +777755776666666655555555554444444444 +445555554444555555557766445544666677665566666666776611000000002233000000 +00000022445544112233442255442211110000000033bbeeeeeeee880000002255999966 +330033ddeeeeeeddddeeeeffccaa99998899aaaabbbbaaaa999999999999999988888877 +777766665566666655665544444444553333 +444444556666445555776666555566667777775566666655665500000000000000000000 +00000000334433337799999988775533112244225599ccddeeeeffee885533111166bbcc +bb6666ddffeeeeeeeeeeaa66aa99aa889999bbbbbbbb99aa999999999999998888888877 +667766555555555555444433444444333322 +334444445577665555556666665566665577666644444466664400000000000000000000 +000000002255667788bbbbbbaabb998866556688aabbddeeeeeeeeeedd8888bbaaccddee +eeeeddeeeeeeddeebb22000066aa88aabbaaccbbaa99aa99889988999999889999888877 +777766666666665544334455443333333333 +333355444466557766776655555555556666664455446666665500000000000000000000 +0000000011335577aaccddddddccbb998899ccddddccddeeffeeeeeeeedd8899ddeeeeee +eeddffeeeeeedddd3322220066aaaaaabb99bbbb99aaaa88888899888888888877887777 +556688553355665533444433334433333344 +444444225555445566888866666666777777776666556666664400000000000000000000 +0000000011224477aaddddeeddddddddddddddddddddeeeeeeffeeeeeeeecc88aaddeeee +eeeeeeeeeeeeeecc66dd8800779988bbbbaabbbbaaaa9988888888999977776677776666 +557766553355556644443333333344221133 +77bbccbb9988774455667777667788888877886666667777666611000000000000000000 +0000001111335577bbccddddeeeeeeddeeeeddddccddeeeeffeeeeeeeeeeffddddddeeee +eeeeffeeeeeeddccddeedd22999988aa99aaaa8899aa9988888888888888776677777766 +776666665555555544444444332222112211 +bbeeffffffeeeedd88444455668899998866776666666677775533000000000000000000 +0011114433446688bbccccccddddeeeeddddbbddeeddeeeeffffeeffeeffeeffffffeeee +ffeeeeffeeeeeebb77eeee88cc889999aaaa99aa99998888778888888888668888997777 +777777667766665533334433332222222222 +77ddeeffeeffeeeeee995555557788888888776677775577776655221100000000001100 +1122225555665588aabbbbccddddddeeccaabbeeddccddeeeeeeffeeffeeeeeeffeeeeee +eeffeeffeeeeffcc33bbeeeebbaaaaaa99aaaa9999888877889999999988777788887777 +888866556677665533334433112211222222 +4499bbbbeeeeeeeeeeee6633667799889988778877667788777777332200110000001100 +444477888866667799aabbccccddddddbb8888aa7755779999bbddeeffffeeeeeeffeeee +eeddeeeeffeeeedd44bbeeeebbaaaa99aaaaaa99889999888888aa99aa88776677888877 +887777666666554433554422222222222211 +003322446677cceeeeeeaa66777788888888888877667788887788662211113300002222 +66887777665566667799aabbccccccaa88443322000011223344446677ccffeeeeeeeeff +eebbeeeeeecceeeeaacceeeebbbbaaaaaabbaabbaa999988778899998888888888778888 +777766776677665555442222222233222222 +00220000000066ccffeeffaa776677887777887777777788888877773311005566115533 +7788996666445566667799bbccbbaaaa9933000000000000000000000066ffeeeeffeeee +eeddeeffeeffeeffeeddeeddbbaaaa99aaaaaabbccaaaa88889988999988888877888877 +888877667766666644332244442222223322 +1111000000000044aaeeffdd777755777788778877777788888888776611221122888844 +88aa77776655445555778899aa7788aaaa44000000000000000000000077ffeeeeddeeee +eeeeeeeeeeeeeeeeeeeeffccaaaaaa9999aaaaaabbaaaa9999888899bb99888866778888 +777777665555554444333322222222221122 +22000000001111001177dddd999999886666888877887788778888888844115544aa8888 +9988888866555555446666666666bbcc99330000000000000000000055eeffeeeeccddee +eeeeeeeeffeeffeeeeeeeeccaaaabbbbaaaabbbbaaaaaa88889999aa8899886688777766 +778888775566554433332233333322331111 +4400000000443300000033bbffeeffeebb666677888888888888777766663333bbbb88bb +aa998888885555554444221144aaccbb330000000000000000000033ccffeeeeffddcccc +cceeeeeeeeffeeeeeeffeebbbbbbbbbbbbaaaaaaaabbaa8899aa99889999888877888877 +667777668888998844332244442244332222 +770000000077ccbb996677eeeeeeeeeeeebb5566777788889988777777777755ccbbaacc +bbaa9988775577664400000055bb6633110000000000000000000077bbddeeeeeeffddaa +bbddddddddddffeeffeeeebbbbccccbbbbbbaaaaaaaa8888888888998899888888888888 +776677aaddeeeedd77223344443344333311 +dd77000011aa99aaddeecccceeeeeeeeeeeebbaa6677888899887788778888cceeccbbbb +ccaa998888888855110000337733000000000000000000000000005599ddccddeeeeeedd +aa99ccddaacceeffeeeeeeeebbaaccbbbbaa99aa99998888887799998899998877888888 +8888cceeeeeeeeddbb553344333333333322 +eeee88000077220033998866aaeeeeeeeeeeeeeeaa777788aa8899997788aaddccbbcccc +ccbbaaaabb9977440000335522000000000000000000000000000000227788aaeeeeeeee +bb8899ccddaaaaeeeeeeeeffcc99aaaa99999999aaaa8888888888777777888877777788 +88cceeeeeeeeddeeeeaa3344444433443333 +eeeedd55004488000011110077ffeeeeeeeeeeeeffbb8877889988999999ddddddddddcc +ddccccbb8866332200113300000000000000000000000000000000000000334488cceeee +ddccaa88bbbb6655bbffeeeeeeccaa9999aaaa99998899997777889999aa998888888866 +3388ddddddddcc88ccdd9944334433443322 +eeeeee88110066110000000088eeeeeeeeeeffeeeeeecc9977889999aacceeddeeeedddd +ddddaa88663300000000000000000000000000000000000000000011000000000022aadd +eeddccbb99aa88111188eeffeeffddaa99aaaaaa88998888888888aaeeeeeebbbbddddaa +1155ccaa55443311aaeedd88222222332211 +ddccdd88440000000000000077ddeeeeeeeeeeffeeeeffeebb99aaaaccddeeeeeeeeeeee +ddbb777777442200000000000000000000000000001188ccbb9999bb8833000000002222 +77ddddddccbb8844000044ddffffffeeaa88aa9999998888888888cceeddeeddeeeeeedd +2288bb991100000066bbddcc551122222222 +cc666622221100000000000055ddeeeeeeeeeeeeeeeeeeeeee9999ccddeeeeffeeeeeeee +eeddccaa884422331100000000000000000000001177eeeeeeeedddddd99550000001133 +1155ddeeddddcc8855000033aaeeeeffdd9999aa9999aa88995555cceeeeddeeeeeeeebb +00559999440000000055bbddbb3322223322 +ffdd4400001100000000000044ddeeeeeeeeeeeeeeeeeeeeeeccbbeeffeeeeeeeeffeeee +eeddeeccbb8866772200000000000000000000001144668899aabbddddccbb66110044bb +bbbbcccceeeeddddcc8877332277cceeeeeebb88999999aadd7799eeeeeeeeeeeeddddaa +4444775577220000000044bbee7711222211 +eeeecc33000000000000000033cceeeeeeeeeeeeeeeeeeffeeffeeffeeeeffeeffeeffff +eeffeeddeeccbb884411000000000000000011000000000000000088ccddddaa6644bbee +ddffeeddeeeeeeeeeeffffeeddbbddeeffeeeeddaa88aaccddbbeeddeeddddeeeeee8844 +7711221100000000001177ccddbb44112211 +eeeeffaa000000000000000066eeeeeeddddeeeeffeeeeeeffeeeeeeffeeeeffeeeeffff +eeeeeeeeeeeeeecc66110000000000000022666655334433446688bbeeddeeddbbccddee +eeeeeeeeeeddeeeeffffeeeeffffffeeeeeeeeffdd99cceeddbbddeeddddeeddeecc2200 +22000000000000003399ccccdddd88111122 +eeeeeeee550000000000000088eeddddddccddddeeeeddeeeeeeeeeeffeeffeeeeffffee +ffffeeeeffeeeeee99220000000011336688bbddddddddeeeeffeeeeeeeeeeeeeeeeeeee +ffeeffeeeeeeeeffeeeeeeffeeffeeeeffeeeeeeffddddeedd99ccddddddeeeedd660000 +00000000000000001166ccddddeeaa222222 +eeeeeeee880000000000000099eecc888888ddccccaa88ccddeeeeeeeeeeffeeffeeffee +ffeeeeffeeeeeeddbb3300001122336688aaddeeeeddeeeeeeeeeeffffeeeeffeeeeeeee +eeffeeffeeeeeeeeeeffeeeeffeeeeeeeeeeeeeeeeccccddcc5588aacceeddeecc220000 +0000000000000000004499bbccddcc331111 +eeeeeeee990000000000000088ddccdd6622bbddbb4455ddbbaaeeeeffeeffeeeeeeffff +eeffeeeeeeeeddcc996633335522335588aaccddeeeeeeeeeeeeeeeeeeffeeffffeeeeff +ffeeeeffffeeeeeeeeffeeeeeeffeeeeeeeeeeeeff99779988003377ccddeeee99000000 +000000000000000000000055bbddcc441122 +ffeeeeeedd3300000000000077cceeee880044aabb55ccffddccddffeeeeffeeeeeeeeff +eeffeeeeeeddccbb776644442211223377aaccddeeeeeeeeeeeeffffffeeffeeeeeeffee +ffeeeeeeeeeeeeffffeeeeffeeeeffffeeffeeffff8811333300001199ddeeee66000000 +0000000000000000001155ccddccdd551111 +eeeeeeeedd991100000000000077ccdd555577111133ddffeeddddffffffeeffffffeeee +ffffeeeeffddccbb7733110000000011336688bbcccceeeeeeeeeeffeeeeffffffeeeeee +ffeeffeeffeeffeeeeffeeffeeffffeeffeeffeeff99000000000066ddddeecc22000000 +00000000000000004499ccdddddddd771122 +eeeeeeeeeedd6600000000000000226677ddee66000088bbcc8866777799ccbbaabbbbcc +ddeeffffffeeeeeebb6644110000000000113355668899bbbbddddddeeeeeeddeeeeeeff +eeeeeeeeeeeeeeffffeeffffeeeeddddccddddddee990000000000aaffeeeeaa00000000 +00000000000000005588bbccccdddd880011 +eeeeffeeeeeebb99220000000000000055bbaa3300000011220000003399aa9988886666 +66888888bbddeeeeeeddcc9933000000000000000011224466778888aabbddddeeeeeeee +ffffeeffffeeeeeeccbbbbaaaa777777774411222211000000000055aaaaaa6622000000 +00000000000000004499bbccddddee991111 +eeeeeeffeeddddcc4422220000000000001133000000000000000000669999aaaa99aa99 +999911000011445588aacccc88110000000000000000222222223322336699bbddeeffee +ffeeeeddccccccaaaaaaaabbbbaabbbbbb66000000220000000000001111110000000000 +000000000000001155aabbddccddddbb2211 +ffeeffeeeeeecccc99aa55000000000000000000000000000000001188888899aaaaaaaa +99770000000000000000113333000000000000000000000011000000002277cceeeeddaa +8888ccccccccccccbbbbccddbbbbbbbbcc88000000000000000000000000000000000000 +00000000000000116699ccddddddeecc2211 +eeeeeeeeeeeeddccddccbb661100000000000000000000000000227788778877889999aa +660000000000000000000000000000000000000000111100000000000011445544331100 +0088ccccccccccccccbbbbccccbbbbbbaa99110000000000000000000000000000000000 +000000000000002266aaccddddddddcc3300 +eeeeeeeeeeeeddddbbccccccaa88887788aa440000000000004488778888887788779977 +110000000000000000000000000000000000001111111111001111000000000000000000 +55ccccbbccccbbccccbbbbbbbbbbbb999999772200000000000000000000000000000000 +000000000000002277aaddddccccdddd5511 +eeeeeeffffddddddddddeeddddeeddeeddcc773311000000337766777777667766776611 +000000000000000000000000000000000000000000000000000000000000000000000055 +ccbbbbccbbccccbbbbbbbbbbbbaaaaaaaa99997711000000000000000000000000000000 +000000000000001166aabbccccdddddd7711 +eeeeffeeeeeeeeeeeeddeeddeeddddddccbb996611001144777777776677776666771100 +0000110000000000000000000000000000000000000000000000000000000000000022dd +8844ccbbbbaabbaabbbbaabbaaaaaa99aa99aa7766110000000000000000000011557777 +66330000000000003388aaccdddddddd9911 +ddeeddeeeeeeeeeeddeeddddeeddddccbbaa883300004466667777666655666688440000 +0000001111000000000000000000000000000000000000000000000000000000000099ff +aa0077bb99aabbbbbbbb99aaaa99999999aa887766440000000000000000003388bbccbb +cc773300110000002277bbbbccccddddaa22 +ddeeddeeeeeeddeeeeddddddddddddbb9988330000336655886688776655556688220000 +00000011222211000000000000000000000000000000000000000000000000000077eeff +bb001199ccbbaaaaaaaaaa889988999999997777777733000000000000001166aaccccdd +ccbb770066550000336699ccddccdddddd55 +99aabbddddeeddeeddddddcceeddcc887755110011556666667777776677775522000000 +000011224455441100000000000000000000000000000000000000000000000066eeeeee +cc0000338899bb999999999988888888aa998888777755000000000000002277bbccccdd +ddcc991177882200336699bbddccddddddaa +22333366ccddddddddccddbbaa9977333311001144666655666688889966330000000000 +0000115555777777551100000000000000000000000000000000000000000044ddeeeeee +ee220000002277aabbaaaaaa99888899aa99aa88777766220000000000000055aaccddcc +ddcc991133885522113388ccccddddccccdd +0000000088aa888888887733221100000000115566776677777799994411000000000000 +00001155777788998877773300000000000000110000000000000000000077cceeeeeeee +ee2200000000003377aabbbbaaaa9988aaaaaa999977665500000000000000117799aabb +ccbb883311443311112266bbccccdddddddd +000000002233001122111100000000002244667766668866888899220000000000000000 +000000777799aaaa99aaaa99550000000000000000000000000000003388ddeeeeeeffee +ee33000000001100003388ccbbaa99999999999988775566330000000000000011558899 +aa9977220011000011335588ccddddeeddee +00000000000000000000000000001144667766667788aa99aa8811000000000000000000 +0000003377aabb99bbbbccaa77663300000000000000000000000055cceeeeeeeeeeeeff +ee3300000000001100000055aaccaaaa9988778888887755553300000000000000115566 +776622000000000000113377bbddccdddddd +00000000000000000000000000336677777788777788aa99661100000000000000000000 +000000117799aaccccccccbbbbaa99440000000000000000002288ddeeeeeeeeffeeeeee +dd22000000000000110000002288aaaaaa99778888778877776644000000000000002222 +22110000000000000000003388aaccddddee +000000000000000000000022667777887788777799884411000000000000000000000000 +0000000077aabbccddddccccddccddbb88442200000000000088ffeeeeeeeeffeeeeeeff +dd1100000000000000110000000044aabbaa999999888888665566440000000000000000 +0000000000000000000000001155bbccdddd +000000000000000022556688776688888877887733000000000000000000000000000000 +0000000055bbccddccddddddddeeeedddddd8800000011110000bbffeeeeeeeeffeeeeff +dd1100000000000000001100000000224444667777778888887766555500000000000000 +00000000000000000000000000003388ccdd +000000001133558899998888887788998899660000000000000000000000000000000000 +0000000022aaccddddddeeeeeeeeeeeeeedd330000117766447733ddeeeeffeeeeeeeeff +aa0000000000000000000000000000000000000000113344667788887766110000000000 +000000000000000000000000000000117799 +0000446688aabb88aa999988998888999977000000000000000000000000000000000000 +0000000000aaccddeeeeeeeeeeeeeeeeffaa00000044dd7788ee77aaeeffeeeeffeeffff +880000000000000000000000000000000000000000000000001122222233441100000000 +000000000000000000000000000000000033 +777788aa9988888888888899aa8899886600000000000000000000000000000000000000 +000000000088ddeeeeeeeeeeeeeeeeffeeaa550066bbdd99cceeccaaffeeeeeeeeffeeff +550000000000000000000000000000000000000000000000000000000000113322000000 +000000000000000000000000000000000000 +884422331100000000000022331100000000000000000000000000000000000000000000 +000000000077ddeeeeeeffeeffffffffbbaa6611aaddeecceeeeeebbeeffeeffffeeffee +440000000000000000000000000000000000000000000000000000000000000022110000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000077ddeeeeeeeeffeeeeffcc1111113399bbee88cceeee99aaffffeeffeeeeee +330000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000044ddeeeeeeeeffeeeeff66002266001166ee66aaeeee6666ffeeeeeeeeffdd +110000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000022ddeeeeeeeeeeffffcc11001155003388eeddddeebb2211ddffeeffeeffcc +110000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000aaffeeeeffeeeeff8800000088221155cceebbbb55000088ffeeeeeeffcc +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000077eeeeeeeeeeeeee3300000088660055ccdd554411000044ffffffeeffbb +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000022ddffeeffffff990055330055990077dddd221111330011ccffeeffff88 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000bbffeeeeeeee442299770022aa0077dddd442266bb9944aaffeeffff88 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000066ffeeeeff882288ddaa000077331188993399eeeeffcc99eeeeeeff77 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000011ddffeeffaa99ddeecc11001111001199bbeeeeeeeeeebbddffeecc11 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000066ffeeeeffeeeeeeee2200000066bbddeeeeeeeeeeffddcceebb5500 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000055ddeeeeeeeeffee550055aaaacceeccddffffeeeeeeeeeeffcc00 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000aaffeeffeeeeee66337788bbeeeeeeeeffeeffeeeeeeeeffcc00 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000033cceeeeeeeeeeee440066ddeeeeeeeeeeeeeeeeffeeffeeffbb00 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000055eeeeffeeffeeee88aacceeddeeeeeeeeeeeeffeeeeffeeff8800 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000011ddeeeeeeeeeeeeddddddeeeeeeeeffeeeeffeeffffeeffff6600 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000088ffeeffeeeeeeeeeeddeeeeeeffeeeeeeeeffeeeeffeeff4400 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000033eeeeeeffeeeeeeeeeeffeeeeeeeeeeddeeeeeeeeffeeee3300 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000011bbffeeeeffeeddeeddddbbaaaaddddcceeffeeffeeffee2200 +000000000000000000000000000000000000000000000000000000002200220000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000088ffeeeeeeddddcc9999aaaaddeeeeeeffeeffeeeeffcc0000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000044eeffeeffccddddccddeeeeeeeeeeeeeeeeeeffffffaa0000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000099ffcc5544cceeddddeeddccddeeddddeeeeeeeeff990000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000044ff9911004499aabbccccccccddbbaabbccddffff660000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000011ccbb996655bbbbaaccbbbbddddaaaaccddcceeee550000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000006688000066ddcccceeeeeeeeffeeddccaabbeeff330000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000001144000066eeeeeeddccbbbbbb7722220022bbee110000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000022665599aaccbbaabb775588778899cc000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000002211001177bbddbbaabbaa99ddeedd8844000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000110077bbddddeeffeeeeffeeffaa00000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000088aaeeffeeddccbbcc776655996600000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000778877555533445588113355882200000000 +441100000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000007799ccccddbbddeeee3300000000 +331100000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000001155bbeeeeeeeeffeeeeeeff5500000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000004488ddeeeeeeeeeeeeeeeedd2200000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000033bbddeeeeeeffeeeeffaa0000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000088ccddeeeeeeeeeeff880000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000044aaeeeeffeeeeeeff550000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000001188ddccccddbb9988000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000022222233774422000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000116699aaccddbb44000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000002288888888992200000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000002255661100000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000011000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000113355882200000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000011778899771100000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000002244110000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000110000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000001100 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000001100 +000000000000000000000000000000000000000000000000000000000033110000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000022440000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000011220000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000001100000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000001100000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000001100000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000110000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000001100000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000 +001100110011001100110011001100110000000000000000000000000000000000000000 +000000000000000000000000000000000000000000221100000000000000000000001111 +110000001100001100110000110000000000000000000000000000000000000000001100 +001100000000000000000000110000001100 + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer diff --git a/lib/docbuilder/doc/src/notes.xml b/lib/docbuilder/doc/src/notes.xml new file mode 100644 index 0000000000..1131bbaf91 --- /dev/null +++ b/lib/docbuilder/doc/src/notes.xml @@ -0,0 +1,156 @@ + + + + +
+ + 20072009 + Ericsson AB. 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. + + + + DocBuilder Release Notes + otp_appnotes + nil + nil + nil + notes.xml +
+

This document describes the changes made to the DocBuilder + application.

+ +
Docbuilder 0.9.8.6 + +
Improvements and New Features + + +

+ The documentation is now built with open source tools + (xsltproc and fop) that exists on most platforms. One + visible change is that the frames are removed.

+

+ Own Id: OTP-8201

+
+
+
+ +
+ +
Docbuilder 0.9.8.5 + +
Improvements and New Features + + +

The copyright notices have been updated.

+

+ Own Id: OTP-7851

+
+
+
+ +
+ +
Docbuilder 0.9.8.4 + +
Fixed Bugs and Malfunctions + + +

+ The element "code" with multiple CDATA or CDATA plus + other data now works as expected, previously it caused a + crash.

+

+ Own Id: OTP-7236

+
+
+
+ +
+ +
Docbuilder 0.9.8 + +
Improvements and New Features + + +

+ The generated html should now be valid xhtml (with a few + exceptions to be fixed in next version).

+

+ Own Id: OTP-7027

+
+
+
+ +
+ +
Docbuilder 0.9.7 + +
Improvements and New Features + + +

+ New fonts and new CSS style included in generated html documents. +

+
+ +

+ Updated DTD's with new header elements copyright and legalnotice. + Element authors changed to optional instead of mandatory. + +

+
+
+
+
+ +
Docbuilder 0.9.1 + +
Fixed Bugs and Malfunctions + + +

+ Line breaks within pre are now always preserved.

+

+ The definition of name in the cref DTD is now + correctly handled.

+

+ docb_transform: The HTML snippet returned by the + Module:head() callback function is now placed + below the title in the HTML file (as specified in the + documentation), not on the same line.

+

+ docb_gen: Added option sort_functions.

+

+ Fixed bugs in cites and terms DTD, and also in book, + bookinsidecover and report DTDs which are not officially + supported (yet).

+

+ License info added to all DTD files.

+

+ Corrections and clarifications made to the User's Guide.

+

+ Own Id: OTP-6775

+
+
+
+
+ +
+ DocBuilder 0.9 +

First version of DocBuilder released as part of Erlang/OTP. + Previously it has been used as an internal tool only.

+
+
+ diff --git a/lib/docbuilder/doc/src/overview.xml b/lib/docbuilder/doc/src/overview.xml new file mode 100644 index 0000000000..ca13c5d436 --- /dev/null +++ b/lib/docbuilder/doc/src/overview.xml @@ -0,0 +1,185 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + Overview + + + + + overview.xml +
+ +
+ Background + +

DocBuilder has been used within the OTP project to generate + documentation for Erlang/OTP itself for more than ten years. + It has now been released as a regular Erlang/OTP application.

+ +

The intention with DocBuilder is that it should be as easy to + use and maintain as possible and generate adequate documentation + for OTP's needs. It uses frames, which can probably be regarded as + old-fashioned today. Hopefully, this should be improved in + the future.

+ +

Originally, DocBuilder input was SGML files and external tools + was used for parsing. The internal version used in the OTP + project can generate not only HTML code but also LaTeX (for PDF + and PostScript) and nroff (for UNIX man pages). (Again, using + external tools). Because of this, the parsed source code is + transformed into a tree structure before being transformed again + into the desired format.

+
+ +
+ DTD Suite + +

Input is written as XML according to one of the DTDs and output + is corresponding HTML. Documentation for an Erlang/OTP application + is usually organized as follows:

+ + User's Guide + +

(DTD: + part) + A collection of chapters + (chapter). +

+
+ + Reference Manual + +

(DTD: + application + A collection of manual pages for modules + (erlref), + applications + (appref), + commands + (comref), + C libraries + (cref) and + files + (fileref). +

+
+ + Release Notes + +

Same structure as the User's Guide.

+
+
+ +

In some cases, one or more of the User's Guide, Reference Manual + and Release Notes are omitted. Also, it is possible to use either + the application or part DTD to write other types + of documentation for the application.

+ +

A special kind of DTD, + fascicules, can be used to + specify the different parts of the documentation, and which one + of those should be shown as default.

+
+ +
+ Structure of Generated HTML + +

The generated HTML corresponding to a part or + application document is split into a left frame and a right + frame. The left frame contains information about the document + and links to the included files, that is chapters or manual pages. + The right frame is used to display either the front page for + the document, or the selected chapter/manual page.

+ +

The left frame also contains links to a bibliography and a + glossary, which are automatically generated.

+ +

In the case of an application document, the left frame + also contains a link to an automatically generated index.

+
+ +
+ Basic Tags + +

All DTDs in the DocBuilder DTD suite share a basic set of tags. + An author can easily switch from one DTD to another and still use + the same basic tags. It is furthermore easy to copy pieces of + information from one document to another, even though they do not + use the same DTD.

+ +

The basic set of tags are divided into two categories: + block tags and + inline tags. Block tags + typically define a separate block of information, like a + paragraph or a list. Inline tags are typically used within block + tags, for example a highlighted word within a paragraph.

+
+ +
+ About This Document + +

In this User's Guide, the structure of the different documents + and the meaning of the tags are explained. There are numerous + examples of documentation source code.

+ +

For readability and simplicity, the examples have been kept as + short as possible. For an example of what the generated HTML + will look like, it is recommended to look at the DocBuilder + documentation itself:

+ + This User's Guide is written using the part and + chapter DTDs. + + The Reference Manual is written using + the application, appref and erlref DTDs. + + +
+ +
+ Usage + + + +

Create the relevant XML files.

+ +

If there are EDoc comments in a module, the function + docb_gen:module/1,2 + can be used to generate an XML file according to + the erlref DTD for this module.

+
+ + +

The XML files can be validated using + docb_xml_check:validate/1. +

+
+ + +

Generate HTML files by using + docb_transform:file/1,2. +

+
+
+
+
+ diff --git a/lib/docbuilder/doc/src/part.xml b/lib/docbuilder/doc/src/part.xml new file mode 100644 index 0000000000..546c6c612e --- /dev/null +++ b/lib/docbuilder/doc/src/part.xml @@ -0,0 +1,43 @@ + + + + +
+ + 20072009 + Ericsson AB. 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. + + + DocBuilder User's Guide + + + + +
+ +

Docbuilder provides functionality for generating HTML + documentation for Erlang modules and Erlang/OTP applications + from XML source code and/or EDoc comments in Erlang source code.

+
+ + + + + + + + +
+ diff --git a/lib/docbuilder/doc/src/part_notes.xml b/lib/docbuilder/doc/src/part_notes.xml new file mode 100644 index 0000000000..2f824630fb --- /dev/null +++ b/lib/docbuilder/doc/src/part_notes.xml @@ -0,0 +1,37 @@ + + + + +
+ + 20072009 + Ericsson AB. 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. + + + + DocBuilder Release Notes + + + + +
+ +

Docbuilder provides functionality for generating HTML + documentation for Erlang modules and Erlang/OTP applications + from XML source code and/or EDoc comments in Erlang source code.

+
+ +
+ diff --git a/lib/docbuilder/doc/src/ref_man.xml b/lib/docbuilder/doc/src/ref_man.xml new file mode 100644 index 0000000000..7be8ace32f --- /dev/null +++ b/lib/docbuilder/doc/src/ref_man.xml @@ -0,0 +1,40 @@ + + + + +
+ + 20072009 + Ericsson AB. 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. + + + + DocBuilder Reference Manual + + + + +
+ +

DocBuilder provides functionality for generating HTML + documentation for Erlang modules and Erlang/OTP applications + from XML source code and/or EDoc comments in Erlang source code.

+
+ + + + +
+ diff --git a/lib/docbuilder/doc/src/refman_dtds.xml b/lib/docbuilder/doc/src/refman_dtds.xml new file mode 100644 index 0000000000..a7beaed708 --- /dev/null +++ b/lib/docbuilder/doc/src/refman_dtds.xml @@ -0,0 +1,667 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + + Reference Manual DTDs + + + + + refman_dtds.xml +
+ +

There are five DTDs for writing manual pages about applications, + shell commands, C libraries, Erlang modules and files, all with a + similar structure:

+ + + A header. + Name of the application/command/library/module/file. + Short summary (one line). + A longer description. + "Formal" definitions of functions or commands. + Optional sections of free text. + Optional section with the name(s) and email(s) of the author(s). + + +

The differences between the DTDs are the tags for the name, + the short summary and some tags inside the "formal" definitions.

+ +
+ + The application DTD + +

The application DTD is intended for a Reference Manual and + groups a set of manual pages into one unit. The structure is + similar to the part DTD: first an introduction and then the manual + pages, written in separate files with the + appref, + comref, + cref, + erlref, or + fileref DTD.

+ +

Example:

+
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE application SYSTEM "application.dtd">
+<application>
+  <header>
+    <title>Application name</title>
+    <prepared/>
+    <docno/>
+    <date/>
+    <rev/>
+  </header>
+
+  <description>
+    <p>Application description...</p>
+  </description>
+  
+  <include file="module1">
+  <include file="module2">
+</application>
+    
+
+ +
+ + <application> + +

The top level tag of an application DTD.

+ +

Contains a + <header>, + an optional + <description>, + followed by one or more + <include>. +

+
+ +
+ + The appref DTD + +

This is the DTD for writing an application manual page.

+ +

Example:

+
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE appref SYSTEM "appref.dtd">
+<appref>
+  <header>
+    <title>Application name</title>
+    <prepared/>
+    <docno/>
+    <date/>
+    <rev/>
+  </header>
+
+  <app>Application name</app>
+
+  <appsummary>A short application summary.</appsummary>
+
+  <description>
+    <p>A longer description of the application.</p>
+  </description>
+  
+  <section>
+    <title>Configuration</title>
+
+      <p>...</p>
+  </section>
+
+  ...
+  
+  <authors>
+    <aname>Name of author</aname>
+    <email>Email of author</email>
+  </authors>
+</appref>
+    
+ +
+ + <appref> + +

The top level tag of an appref DTD.

+ +

Contains + <header>, + <app>, + <appsummary>, + <description>, + zero or more + <section> and + <funcs>, + followed by zero or more + <authors>.

+
+ +
+ + <app> + +

The application name. Contains plain text.

+
+ +
+ + <appsummary> + +

Short summary. Contains plain text.

+
+
+ +
+ + The comref DTD + +

This is the DTD for writing a command manual page.

+ +

Example:

+
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE comref SYSTEM "comref.dtd">
+<comref>
+  <header>
+    <title>Command name</title>
+    <prepared/>
+    <docno/>
+    <date/>
+    <rev/>
+  </header>
+
+  <com>Command name</com>
+
+  <comsummary>A short command summary.</comsummary>
+
+  <description>
+    <p>A long description of the command.</p>
+  </description>
+  
+  <funcs>
+    <func>
+      <name>command</name>
+      <name>command -flag <arg></name>
+      <fsummary>A short command summary (max 40 characters).</fsummary>
+      <desc>
+        <p>An extended command description.
+      </desc>
+    </func>
+  </funcs>
+
+  <section>
+    <title>Options</title>
+
+    <p>...</p>
+  </section>
+  
+  <authors>
+    <aname>Name of author</aname>
+    <email>Email of author</email>
+  </authors>
+</comref>
+    
+ +
+ + <comref> + +

The top level tag for a comref DTD.

+ +

Contains + <header>, + <com>, + <comsummary>, + <description>, + zero or more + <section> and + <funcs>, + followed by zero or more + <authors>.

+
+ +
+ + <com> + +

The command name. Contains plain text.

+
+ +
+ + + <comsummary> + +

Short summary. Contains plain text.

+
+
+ +
+ + The cref DTD + +

This is the DTD for writing a C library manual page.

+ +

Example:

+

+
+
+  
+ C library name + + + + +
+ + C library name + + A short C library summary. + + +

A longer description of the C library.

+
+ + + + voidstart(bar) + voidstart(foo) + A short function summary (max 40 characters). + + char bar + int foo + + +

An extended function description.

+
+
+ + ... +
+ +
+ A title + +

Some text...

+
+ + +
+ ]]>
+ +
+ + <cref> + +

The top level tag for a cref DTD.

+ +

Contains + <header>, + <lib>, + <libsummary>, + <description>, + zero or more + <section> and + <funcs>, followed by + zero or more + <authors>.

+
+ +
+ + <lib> + +

The C library name or acronym. Contains plain text.

+
+ +
+ + <libsummary> + +

Short summary. Contains plain text.

+
+
+ +
+ + The erlref DTD + +

This is the DTD for writing Erlang module manual pages.

+ +

Example:

+
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+<erlref>
+  <header>
+    <title>Module name</title>
+    <prepared/>
+    <docno/>
+    <date/>
+    <rev/>
+  </header>
+
+  <module>Module name</module>
+
+  <modulesummary>A short module summary.</modulesummary>
+
+  <description>
+    <p>A longer description of the module.</p>
+  </description>
+  
+  <funcs>
+    <func>
+      <name>start() -> Result</name>
+      <name>start(N) -> Result</name>
+      <fsummary>A short function summary (max 40 characters).</fsummary>
+      <type>
+        <v>Pid = pid()</v>
+        <v>N = int()</v>
+        <v>Result = {ok, Pid} | {error, Reason}</v>
+        <v>Reason = term()</v>
+        <d>A parameter description.</d>
+      </type>
+      <desc>
+        <p>An extended function description.</p>
+      </desc>
+    </func>
+
+    ...
+  </funcs>
+
+  <section>
+    <title>Some Title</title>
+    <p>Some text...</p>
+  </section>
+  
+  <authors>
+    <aname>Name of author</aname>
+    <email>Email of author</email>
+  </authors>
+</erlref>
+    
+ +
+ + <erlref> + +

The top level tag for an erlref DTD.

+ +

Contains + <header>, + <module>, + <modulesummary>, + <description>, + zero or more + <section> and + <funcs>, + followed by zero or more + <authors>.

+
+ +
+ + <module> + +

The module name. Contains plain text.

+
+ +
+ + <modulesummary> + +

Short summary. Contains plain text.

+
+
+ +
+ + The fileref DTD + +

This is the DTD for writing file manual pages. In OTP, this DTD + is used for defining the format of for example .rel and + .app files.

+ +

Example:

+
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE fileref SYSTEM "fileref.dtd">
+<fileref>
+  <header>
+    <title>File name</title>
+    <prepared/>
+    <docno/>
+    <date/>
+    <rev/>
+  </header>
+
+  <file>fileref</file>
+
+  <filesummary>A short file summary.</filesummary>
+
+  <description>
+    <p>A longer description of the file.</p>
+  </description>
+  
+  <section>
+    <title>File format</title>
+
+    <p>...</p>
+  </section>
+  
+  <authors>
+    <aname>Name of author</aname>
+    <email>Email of author</email>
+  </authors>
+</fileref>
+    
+ +

The file reference manual can also contain function definitions, + similar to the erlref DTD.

+ +
+ + <fileref> + +

The top level tag for a fileref DTD.

+ +

Contains + <header>, + <file>, + <filesummary>, + <description>, + zero or more + <section> and + <funcs>, + followed by zero or more + <authors>.

+
+ +
+ + <file> + +

The name of the file or file type. Contains plain text.

+
+ +
+ + <filesummary> + +

Short summary. Contains plain text.

+
+
+ +
+ + <description> + +

The introduction after the title and before sections and + "formal" definitions.

+ +

Contains any combination and any number of + block tags except + ]]> and ]]>.

+
+ +
+ + <section> + +

Subdivisions of the document. Contains an optional + <marker>, + a <title>, + + followed by any combination and any number of + block tags except + ]]> and ]]>.

+
+ +
+ + <funcs> + +

A group of "formal" function definitions.

+ +

Contains one or more + <func>.

+
+ +
+ + <func> + +

A "formal" function definition.

+ +

Contains one or more + <name>, followed by + <fsummary>, + <type> (optional) and + <desc> (optional).

+
+ +
+ + <name> + +

Function/command signature with name, arguments and return value. + Contains plain text, except for the cref DTD where it + contains a ]]> (return type, plain text) and + a ]]> (function name and arguments, + plain text).

+ +

In the case of an erlref DTD, DocBuilder will + automatically try to add a + marker, + ]]> or + ]]>, based on the contents of + this tag before the function definition.

+ +

Example: Consider the following name definition

+
foo(Arg1, Arg2) -> ok | {error, Reason}
+    ]]>
+ +

DocBuilder will create a marker + ]]> before the function + definition in the generated HTML. That is, referring to + the function using + foo/2]]> will + automatically work.

+
+ +
+ + <fsummary> + +

Function/command summary. Contains plain text, + <c> and + <em>.

+
+ +
+ + <type> + +

Type declarations for the function/command.

+ +

Contains one or more pairs of + <v> and + <d> (optional).

+
+ +
+ + <v> + +

Type declaration for an argument or return value. Contains plain + text.

+
+ +
+ + <d> + +

Description for an argument or return value. Contains plain text, + <c> and + <em>.

+
+ +
+ + <desc> + +

Function/command description. Contains + block tags except + <image> and <table>.

+
+ +
+ + <authors> + +

Authors of the manual page. The authors element is optional.

+ +

Contains one or more pairs of + <aname> and + <email>.

+
+ +
+ + <aname> + +

Author name. Contains plain text.

+
+ +
+ + <email> + +

Author email address. Contains plain text.

+
+
+ diff --git a/lib/docbuilder/doc/src/user_guide_dtds.xml b/lib/docbuilder/doc/src/user_guide_dtds.xml new file mode 100644 index 0000000000..a2db44f830 --- /dev/null +++ b/lib/docbuilder/doc/src/user_guide_dtds.xml @@ -0,0 +1,181 @@ + + + + +
+ + 19972009 + Ericsson AB. 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. + + + + User's Guide DTDs + + + + + user_guide_dtds.xml +
+ +
+ + The part DTD + +

The part DTD is intended for a "normal" document, like + the User's Guide or Release Notes. First are some paragraphs + introducing the main contents. After that follows chapters, + written in separate files with + the chapter DTD.

+ +

Example:

+
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+<part>
+  <header>
+    <title>The chapter title</title>
+    <prepared>The author</prepared>
+    <docno/>
+    <date/>
+    <rev/>
+  </header>
+
+  <description>
+    <p>Some text..</p>
+  </description>
+
+  <include file="file1"></include>
+  <include file="file2"></include>
+</part>
+    
+
+ +
+ + <part> + +

The top level tag of a part DTD.

+ +

Contains a + <header>, + an optional + <description>, + followed by one or more + <include>.

+
+ +
+ + <description> + +

The introduction after the title and before the bulk of + included chapters/manual pages.

+ +

Contains any combination and any number + of block tags except + ]]> and ]]>.

+
+ +
+ + <include> + +

An empty tag. The attribute file specifies a file to + include. The .xml file extension should be omitted.

+ +

Example:

+
+<include file="notes"></include>
+    
+
+ +
+ + The chapter DTD + +

The chapter DTD is intended for a chapter in a User's + Guide or similar with text divided into sections, which can be + nested.

+ +

Example:

+
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+<chapter>
+  <header>
+    <title>Title on first level</title>
+    <prepared/>
+    <docno/>
+    <date/>
+    <rev/>
+  </header>
+  
+  <p>Introduction...</p>
+
+  <section>
+    <title>Title on second level</title>
+
+    <p>First paragraph.</p>
+
+    <p>Second paragraph etc.</p>
+
+    <section>
+      <title>Title on third level</title>
+
+      <p>...</p>
+    </section>
+  </section>
+
+  ...
+</chapter>
+    
+
+ +
+ + <chapter> + +

The top level tag of a chapter DTD.

+ +

Contains a + <header>, + an optional introduction consisting of any combination of + block tags, + followed by one or more + <section>.

+
+ +
+ + <section> + +

Subdivision of a chapter.

+ +

Contains an optional + <marker>, + a <title>, + followed by any combination and any number of + block tags and + ]]>.

+
+ +
+ + <title> + +

Section title, contains plain text.

+
+
+ diff --git a/lib/docbuilder/dtd/Makefile b/lib/docbuilder/dtd/Makefile new file mode 100644 index 0000000000..05c656f3fc --- /dev/null +++ b/lib/docbuilder/dtd/Makefile @@ -0,0 +1,91 @@ +# ``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 Utvecklings AB. +# Portions created by Ericsson are Copyright 1999-2000, Ericsson +# Utvecklings AB. All Rights Reserved.'' +# +# $Id$ +# + +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../vsn.mk +VSN=$(DOCB_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/docbuilder-$(VSN) + +# ---------------------------------------------------- +# Common Macros +# ---------------------------------------------------- + +DTD_FILES = \ + application.dtd \ + appref.dtd \ + book.dtd \ + bookinsidecover.dtd \ + chapter.dtd \ + cites.dtd \ + common.dtd \ + common.entities.dtd \ + common.header.dtd \ + common.image.dtd \ + common.refs.dtd \ + common.table.dtd \ + comref.dtd \ + cref.dtd \ + erlref.dtd \ + fascicules.dtd \ + fileref.dtd \ + part.dtd \ + report.dtd \ + terms.dtd \ + xhtml-lat1.ent \ + xhtml-special.ent \ + xhtml-symbol.ent \ + xhtml1-frameset.dtd \ + xhtml1-strict.dtd \ + xhtml1-transitional.dtd + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- + +debug opt: + +clean: + +docs: + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + +release_spec: + $(INSTALL_DIR) $(RELSYSDIR)/dtd + $(INSTALL_DATA) $(DTD_FILES) $(RELSYSDIR)/dtd + +release_docs_spec: + + + + + + + diff --git a/lib/docbuilder/dtd/application.dtd b/lib/docbuilder/dtd/application.dtd new file mode 100644 index 0000000000..8a1e8832ec --- /dev/null +++ b/lib/docbuilder/dtd/application.dtd @@ -0,0 +1,29 @@ + + + + +%common; + +%common.header; + + + + + diff --git a/lib/docbuilder/dtd/appref.dtd b/lib/docbuilder/dtd/appref.dtd new file mode 100644 index 0000000000..70a5ff37af --- /dev/null +++ b/lib/docbuilder/dtd/appref.dtd @@ -0,0 +1,33 @@ + + + + +%common.refs; + + + + + + + + + diff --git a/lib/docbuilder/dtd/book.dtd b/lib/docbuilder/dtd/book.dtd new file mode 100644 index 0000000000..bb89a6d255 --- /dev/null +++ b/lib/docbuilder/dtd/book.dtd @@ -0,0 +1,73 @@ + + + + +%common; + +%common.header; + +%common.table; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/bookinsidecover.dtd b/lib/docbuilder/dtd/bookinsidecover.dtd new file mode 100644 index 0000000000..d6efbef6a4 --- /dev/null +++ b/lib/docbuilder/dtd/bookinsidecover.dtd @@ -0,0 +1,36 @@ + + +%ISOlat1; + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/chapter.dtd b/lib/docbuilder/dtd/chapter.dtd new file mode 100644 index 0000000000..eb2c96b04f --- /dev/null +++ b/lib/docbuilder/dtd/chapter.dtd @@ -0,0 +1,36 @@ + + + + +%common; + +%common.header; + +%common.table; + +%common.image; + + + + + diff --git a/lib/docbuilder/dtd/cites.dtd b/lib/docbuilder/dtd/cites.dtd new file mode 100644 index 0000000000..334574bff9 --- /dev/null +++ b/lib/docbuilder/dtd/cites.dtd @@ -0,0 +1,35 @@ + + +%ISOlat1; + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/common.dtd b/lib/docbuilder/dtd/common.dtd new file mode 100644 index 0000000000..2c4ad51ab1 --- /dev/null +++ b/lib/docbuilder/dtd/common.dtd @@ -0,0 +1,87 @@ + + + + +%common.entities; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/common.entities.dtd b/lib/docbuilder/dtd/common.entities.dtd new file mode 100644 index 0000000000..f893ecd070 --- /dev/null +++ b/lib/docbuilder/dtd/common.entities.dtd @@ -0,0 +1,24 @@ + + +%ISOlat1; + + + + diff --git a/lib/docbuilder/dtd/common.header.dtd b/lib/docbuilder/dtd/common.header.dtd new file mode 100644 index 0000000000..d422a89693 --- /dev/null +++ b/lib/docbuilder/dtd/common.header.dtd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/common.image.dtd b/lib/docbuilder/dtd/common.image.dtd new file mode 100644 index 0000000000..fc95a669dd --- /dev/null +++ b/lib/docbuilder/dtd/common.image.dtd @@ -0,0 +1,21 @@ + + + + diff --git a/lib/docbuilder/dtd/common.refs.dtd b/lib/docbuilder/dtd/common.refs.dtd new file mode 100644 index 0000000000..7b9974fbda --- /dev/null +++ b/lib/docbuilder/dtd/common.refs.dtd @@ -0,0 +1,40 @@ + + + + +%common; + +%common.header; + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/common.table.dtd b/lib/docbuilder/dtd/common.table.dtd new file mode 100644 index 0000000000..7741da1018 --- /dev/null +++ b/lib/docbuilder/dtd/common.table.dtd @@ -0,0 +1,25 @@ + + + + + + + diff --git a/lib/docbuilder/dtd/comref.dtd b/lib/docbuilder/dtd/comref.dtd new file mode 100644 index 0000000000..fcdea625d5 --- /dev/null +++ b/lib/docbuilder/dtd/comref.dtd @@ -0,0 +1,31 @@ + + + + +%common.refs; + + + + + + + diff --git a/lib/docbuilder/dtd/cref.dtd b/lib/docbuilder/dtd/cref.dtd new file mode 100644 index 0000000000..e43bb2bf51 --- /dev/null +++ b/lib/docbuilder/dtd/cref.dtd @@ -0,0 +1,34 @@ + + + + +%common.refs; + + + + + + + + + + diff --git a/lib/docbuilder/dtd/erlref.dtd b/lib/docbuilder/dtd/erlref.dtd new file mode 100644 index 0000000000..21656a1446 --- /dev/null +++ b/lib/docbuilder/dtd/erlref.dtd @@ -0,0 +1,31 @@ + + + + +%common.refs; + + + + + + + diff --git a/lib/docbuilder/dtd/fascicules.dtd b/lib/docbuilder/dtd/fascicules.dtd new file mode 100644 index 0000000000..b14276a2c0 --- /dev/null +++ b/lib/docbuilder/dtd/fascicules.dtd @@ -0,0 +1,35 @@ + + + + +%ISOlat1; + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/fileref.dtd b/lib/docbuilder/dtd/fileref.dtd new file mode 100644 index 0000000000..5a1cc54afe --- /dev/null +++ b/lib/docbuilder/dtd/fileref.dtd @@ -0,0 +1,31 @@ + + + + +%common.refs; + + + + + + + diff --git a/lib/docbuilder/dtd/part.dtd b/lib/docbuilder/dtd/part.dtd new file mode 100644 index 0000000000..3f97199042 --- /dev/null +++ b/lib/docbuilder/dtd/part.dtd @@ -0,0 +1,29 @@ + + + + +%common; + +%common.header; + + + + + diff --git a/lib/docbuilder/dtd/report.dtd b/lib/docbuilder/dtd/report.dtd new file mode 100644 index 0000000000..3d07e6e5a7 --- /dev/null +++ b/lib/docbuilder/dtd/report.dtd @@ -0,0 +1,138 @@ + + + + +%ISOlat1; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/terms.dtd b/lib/docbuilder/dtd/terms.dtd new file mode 100644 index 0000000000..6105ec593e --- /dev/null +++ b/lib/docbuilder/dtd/terms.dtd @@ -0,0 +1,36 @@ + + +%ISOlat1; + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/xhtml-lat1.ent b/lib/docbuilder/dtd/xhtml-lat1.ent new file mode 100644 index 0000000000..aaae738cfc --- /dev/null +++ b/lib/docbuilder/dtd/xhtml-lat1.ent @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/xhtml-special.ent b/lib/docbuilder/dtd/xhtml-special.ent new file mode 100644 index 0000000000..ca358b2fec --- /dev/null +++ b/lib/docbuilder/dtd/xhtml-special.ent @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/xhtml-symbol.ent b/lib/docbuilder/dtd/xhtml-symbol.ent new file mode 100644 index 0000000000..63c2abfa6f --- /dev/null +++ b/lib/docbuilder/dtd/xhtml-symbol.ent @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/xhtml1-frameset.dtd b/lib/docbuilder/dtd/xhtml1-frameset.dtd new file mode 100644 index 0000000000..d128f2eb7c --- /dev/null +++ b/lib/docbuilder/dtd/xhtml1-frameset.dtd @@ -0,0 +1,1235 @@ + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/xhtml1-strict.dtd b/lib/docbuilder/dtd/xhtml1-strict.dtd new file mode 100644 index 0000000000..2927b9ece7 --- /dev/null +++ b/lib/docbuilder/dtd/xhtml1-strict.dtd @@ -0,0 +1,978 @@ + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/dtd/xhtml1-transitional.dtd b/lib/docbuilder/dtd/xhtml1-transitional.dtd new file mode 100644 index 0000000000..628f27ac50 --- /dev/null +++ b/lib/docbuilder/dtd/xhtml1-transitional.dtd @@ -0,0 +1,1201 @@ + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docbuilder/ebin/.gitignore b/lib/docbuilder/ebin/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/docbuilder/etc/Makefile b/lib/docbuilder/etc/Makefile new file mode 100644 index 0000000000..a2f669d749 --- /dev/null +++ b/lib/docbuilder/etc/Makefile @@ -0,0 +1,67 @@ +# ``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 Utvecklings AB. +# Portions created by Ericsson are Copyright 1999-2000, Ericsson +# Utvecklings AB. All Rights Reserved.'' +# +# $Id$ +# + +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../vsn.mk +VSN=$(DOCB_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/docbuilder-$(VSN) + +# ---------------------------------------------------- +# Common Macros +# ---------------------------------------------------- + +VAR_FILES = \ + note.gif \ + warning.gif + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- + +debug opt: + +clean: + +docs: + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + +release_spec: + $(INSTALL_DIR) $(RELSYSDIR)/etc + $(INSTALL_DATA) $(VAR_FILES) $(RELSYSDIR)/etc + +release_docs_spec: + + + + + + + diff --git a/lib/docbuilder/etc/note.gif b/lib/docbuilder/etc/note.gif new file mode 100644 index 0000000000..6fffe30419 Binary files /dev/null and b/lib/docbuilder/etc/note.gif differ diff --git a/lib/docbuilder/etc/warning.gif b/lib/docbuilder/etc/warning.gif new file mode 100644 index 0000000000..96af52360e Binary files /dev/null and b/lib/docbuilder/etc/warning.gif differ diff --git a/lib/docbuilder/info b/lib/docbuilder/info new file mode 100644 index 0000000000..33ce19fb4b --- /dev/null +++ b/lib/docbuilder/info @@ -0,0 +1,2 @@ +group: tools +short: Tool for generating HTML documentation for applications. diff --git a/lib/docbuilder/src/Makefile b/lib/docbuilder/src/Makefile new file mode 100644 index 0000000000..e8a07a54e8 --- /dev/null +++ b/lib/docbuilder/src/Makefile @@ -0,0 +1,121 @@ +# ``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 Utvecklings AB. +# Portions created by Ericsson are Copyright 1999-2000, Ericsson +# Utvecklings AB. All Rights Reserved.'' +# +# $Id$ +# + +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../vsn.mk +VSN=$(DOCB_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/docbuilder-$(VSN) + +# ---------------------------------------------------- +# Common Macros +# ---------------------------------------------------- + +MODULES= \ + docb_edoc_xml_cb \ + docb_gen \ + docb_html \ + docb_html_layout \ + docb_html_ref \ + docb_html_util \ + docb_html_util_iso \ + docb_main \ + docb_pretty_format \ + docb_tr_application2html \ + docb_tr_appref2html \ + docb_tr_chapter2html \ + docb_tr_cite2html \ + docb_tr_comref2html \ + docb_tr_cref2html \ + docb_tr_erlref2html \ + docb_tr_fileref2html \ + docb_tr_first2html \ + docb_tr_index2html \ + docb_tr_part2html \ + docb_tr_refs2kwic \ + docb_tr_report2html \ + docb_tr_term2html \ + docb_transform \ + docb_util \ + docb_xmerl_tree_cb \ + docb_xmerl_xml_cb \ + docb_xml_check + +HRL_FILES= \ + docb_util.hrl + +ERL_FILES= $(MODULES:%=%.erl) + +TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) + +APP_FILE= docbuilder.app +APPUP_FILE= docbuilder.appup +APP_SRC= $(APP_FILE).src +APPUP_SRC= $(APPUP_FILE).src +APP_TARGET= $(EBIN)/$(APP_FILE) +APPUP_TARGET= $(EBIN)/$(APPUP_FILE) + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- +ERL_FLAGS += +XMERL = ../../xmerl +ERL_COMPILE_FLAGS += -I$(XMERL)/include + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- + +debug opt: $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) + +clean: + rm -f $(TARGET_FILES) $(APP_TARGET) + rm -f errs core *~ + +$(APP_TARGET): $(APP_SRC) ../vsn.mk + sed -e 's;%VSN%;$(VSN);' $< > $@ +$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk + sed -e 's;%VSN%;$(VSN);' $< > $@ + +docs: + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/src + $(INSTALL_DATA) $(ERL_FILES) $(HRL_FILES) $(RELSYSDIR)/src + $(INSTALL_DIR) $(RELSYSDIR)/ebin + $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) $(RELSYSDIR)/ebin + +release_docs_spec: + + + + + diff --git a/lib/docbuilder/src/docb_edoc_xml_cb.erl b/lib/docbuilder/src/docb_edoc_xml_cb.erl new file mode 100644 index 0000000000..4dba843341 --- /dev/null +++ b/lib/docbuilder/src/docb_edoc_xml_cb.erl @@ -0,0 +1,1163 @@ +%% ``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 Licence 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-2006, Ericsson AB. +%% All Rights Reserved.´´ +%% +%% $Id$ +%% +-module(docb_edoc_xml_cb). + +%% This is the EDoc callback module for creating DocBuilder erlref +%% documents (man pages) in XML format, and also a DocBuilder chapter +%% document based on "overview.edoc". +%% +%% Usage examples: +%% docb_gen File +%% docb_gen -chapter overview.edoc +%% or (from an Erlang shell) +%% edoc:file(File, [{layout,docb_edoc_xml_cb},{file_suffix,".xml"}, +%% {preprocess,true}]). +%% +%% The origin of this file is the edoc module otpsgml_layout.erl +%% written by Richard Carlsson. + +-export([module/2, overview/2]). + +-include("xmerl.hrl"). + +-define(NL, "\n"). + +%%-User interface------------------------------------------------------- + +%% ERLREF +module(Element, Opts) -> + SortP = proplists:get_value(sort_functions, Opts, true), + XML = layout_module(Element, SortP), + xmerl:export_simple([XML], docb_xmerl_xml_cb, []). + +%% CHAPTER +overview(Element, _Opts) -> + XML = layout_chapter(Element), + xmerl:export_simple([XML], docb_xmerl_xml_cb, []). + +%%--Internal functions-------------------------------------------------- + +layout_module(#xmlElement{name = module, content = Es}=E, SortP) -> + Name = get_attrval(name, E), + Desc = get_content(description, Es), + ShortDesc = text_only(get_content(briefDescription, Desc)), + FullDesc = otp_xmlify(get_content(fullDescription, Desc)), + Types0 = get_content(typedecls, Es), + Types1 = lists:sort([{type_name(Et), Et} || Et <- Types0]), + Functions = + case SortP of + true -> + lists:sort([{function_name(Ef), Ef} || + Ef <- get_content(functions, Es)]); + false -> + [{function_name(Ef), Ef} || + Ef <- get_content(functions, Es)] + end, + Header = {header, [ + ?NL,{title, [Name]}, + ?NL,{prepared, [""]}, + ?NL,{responsible, [""]}, + ?NL,{docno, ["1"]}, + ?NL,{approved, [""]}, + ?NL,{checked, [""]}, + ?NL,{date, [""]}, + ?NL,{rev, ["A"]}, + ?NL,{file, [Name++".xml"]} + ]}, + Module = {module, [Name]}, + ModuleSummary = {modulesummary, ShortDesc}, + Description = {description, [?NL|FullDesc]}, + Types = case Types1 of + [] -> []; + _ -> + [?NL, {section,[{title,["DATA TYPES"]}, + {marker,[{id,"types"}],[]}, + ?NL|types(Types1)]}] + end, + Funcs = functions(Functions), + See = seealso_module(Es), + Authors = {authors, authors(Es)}, + {erlref, + [?NL,Header, + ?NL,Module, + ?NL,ModuleSummary, + ?NL,Description] + ++ Types ++ + [?NL,Funcs, + ?NL,See, + ?NL,Authors] + }. + +layout_chapter(#xmlElement{name=overview, content=Es}) -> + Title = get_text(title, Es), + Header = {header, [ + ?NL,{title,[Title]}, + ?NL,{prepared,[""]}, + ?NL,{docno,[""]}, + ?NL,{date,[""]}, + ?NL,{rev,[""]}, + ?NL,{file, ["chapter.xml"]} + ]}, + DescEs = get_content(description, Es), + FullDescEs = get_content(fullDescription, DescEs), + Sections = chapter_ify(FullDescEs, first), + {chapter, [?NL, Header, ?NL | Sections]}. + +chapter_ify([], _) -> + []; +chapter_ify(Es, first) -> + %% Everything up to the first section should be made into + %% plain paragraphs -- or if no first section is found, everything + %% should be made into one + case find_next(h3, Es) of + {Es, []} -> + SubSections = subchapter_ify(Es, first), + [{section, [?NL,{title,["Overview"]}, + ?NL | SubSections]}]; + {FirstEs, RestEs} -> + otp_xmlify(FirstEs) ++ chapter_ify(RestEs, next) + end; +chapter_ify([#xmlElement{name=h3} = E | Es], next) -> + {SectionEs, RestEs} = find_next(h3, Es), + SubSections = subchapter_ify(SectionEs, first), + {Marker, Title} = chapter_title(E), + [{section, [?NL,{marker,[{id,Marker}],[]}, + ?NL,{title,[Title]}, + ?NL | SubSections]} | chapter_ify(RestEs, next)]. + +subchapter_ify([], _) -> + []; +subchapter_ify(Es, first) -> + %% Everything up to the (possible) first subsection should be + %% made into plain paragraphs + {FirstEs, RestEs} = find_next(h4, Es), + otp_xmlify(FirstEs) ++ subchapter_ify(RestEs, next); +subchapter_ify([#xmlElement{name=h4} = E | Es], next) -> + {SectionEs, RestEs} = find_next(h4, Es), + Elements = otp_xmlify(SectionEs), + {Marker, Title} = chapter_title(E), + [{section, [?NL,{marker,[{id,Marker}],[]}, + ?NL,{title,[Title]}, + ?NL | Elements]} | subchapter_ify(RestEs, next)]. + +chapter_title(#xmlElement{content=Es}) -> % name = h3 | h4 + case Es of + [#xmlElement{name=a} = E] -> + {get_attrval(name, E), get_text(E)} + end. + +%%--XHTML->XML transformation------------------------------------------- + +%% otp_xmlify(Es1) -> Es2 +%% Es1 = Es2 = [#xmlElement{} | #xmlText{}] +%% Fix things that are allowed in XHTML but not in chapter/erlref DTDs. +%% 1) lists (