aboutsummaryrefslogtreecommitdiffstats
path: root/system/doc/top/templates
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
committerErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
commit84adefa331c4159d432d22840663c38f155cd4c1 (patch)
treebff9a9c66adda4df2106dfd0e5c053ab182a12bd /system/doc/top/templates
downloadotp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz
otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2
otp-84adefa331c4159d432d22840663c38f155cd4c1.zip
The R13B03 release.OTP_R13B03
Diffstat (limited to 'system/doc/top/templates')
-rw-r--r--system/doc/top/templates/applications.html.src34
-rw-r--r--system/doc/top/templates/erlang.gifbin0 -> 2162 bytes
-rw-r--r--system/doc/top/templates/first.html.src104
-rwxr-xr-xsystem/doc/top/templates/flip_closed.gifbin0 -> 82 bytes
-rwxr-xr-xsystem/doc/top/templates/flip_google.gifbin0 -> 257 bytes
-rwxr-xr-xsystem/doc/top/templates/flip_open.gifbin0 -> 86 bytes
-rwxr-xr-xsystem/doc/top/templates/flip_static.gifbin0 -> 109 bytes
-rwxr-xr-xsystem/doc/top/templates/flipmenu.js342
-rw-r--r--system/doc/top/templates/index.html.src180
-rw-r--r--system/doc/top/templates/otp_top.css53
-rw-r--r--system/doc/top/templates/system.html.src281
-rw-r--r--system/doc/top/templates/toc_.html.src105
12 files changed, 1099 insertions, 0 deletions
diff --git a/system/doc/top/templates/applications.html.src b/system/doc/top/templates/applications.html.src
new file mode 100644
index 0000000000..0251d39b28
--- /dev/null
+++ b/system/doc/top/templates/applications.html.src
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Erlang/OTP #version#</title>
+ <style type="text/css">
+<!--
+ BODY { background: white }
+
+ BODY { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TH { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TD { font-family: Verdana, Arial, Helvetica, sans-serif }
+ P { font-family: Verdana, Arial, Helvetica, sans-serif }
+
+ .header { background: #222; color: #fff }
+ .app { background: #ccc }
+
+ a.anum:link { color: green; text-decoration: none }
+ a.anum:active { color: green; text-decoration: none }
+ a.anum:visited { color: green; text-decoration: none }
+
+ a:link { text-decoration: none }
+ a:active { text-decoration: none }
+ a:visited { text-decoration: none }
+-->
+ </style>
+</head>
+
+<body bgcolor=white text="#000000" link="#0000ff" vlink="#ff00ff"
+ alink="#ff0000">
+<center>
+#groups#
+</center>
+</body>
+</html>
diff --git a/system/doc/top/templates/erlang.gif b/system/doc/top/templates/erlang.gif
new file mode 100644
index 0000000000..91fd4b9647
--- /dev/null
+++ b/system/doc/top/templates/erlang.gif
Binary files differ
diff --git a/system/doc/top/templates/first.html.src b/system/doc/top/templates/first.html.src
new file mode 100644
index 0000000000..edef1c0e5c
--- /dev/null
+++ b/system/doc/top/templates/first.html.src
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Erlang/OTP #release# Documentation</title>
+ <style type="text/css">
+<!--
+ BODY { background: white }
+
+ BODY { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TH { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TD { font-family: Verdana, Arial, Helvetica, sans-serif }
+ P { font-family: Verdana, Arial, Helvetica, sans-serif }
+
+ .header { background: #222; color: #fff }
+ .app { background: #ccc }
+-->
+ </style>
+</head>
+<body bgcolor=white text="#000000" link="#0000ff" vlink="#ff00ff"
+ alink="#ff0000">
+<center>
+<p>
+<font size="+1">Welcome to Erlang/OTP, a complete<br>
+development environment<br>
+for concurrent programming.</font>
+</p>
+</center>
+<br>
+<br>
+<br>
+<p><b>
+<font size"+1">
+Some hints that may get you started faster
+</font>
+</b></p>
+
+<ul>
+
+<li>In addition the the documentation here Erlang is described in the book
+<a href="http://www.pragprog.com/titles/jaerlang" target="_top">"Programming Erlang"</a>, ISBN 978-1-934356-00-5 which we really recommend as a start.<br/ >
+The complete language is also described in the <a href="reference_manual/part_frame.html" target="_top">Erlang Reference Manual</a>. An Erlang tutorial can be found in <a href="getting_started/part_frame.html" target="_top">Getting Started With Erlang</a>.
+</li>
+<li>Erlang/OTP is divided into a number of OTP <a
+href="applications.html">applications</a>. An application normally contains
+Erlang <a href="man_index.html">modules</a>. Some OTP applications,
+such as the C interface <em>Erl_Interface</em>, are written in other languages and have no Erlang
+modules.
+
+<p>
+Note that functions that are not imported or prefixed with a module
+name belong to the module
+<a href="#kernel#/erlang.html" target="_top">erlang</a>
+(in the <em>Kernel</em> application).
+</p>
+<p>
+<li>On a Unix system you can view the manual pages from the command
+line using
+<pre>
+ % erl -man &lt;module&gt;
+</pre>
+<p>
+
+<li> You can of course use any editor you like to write Erlang
+programs, but if you use Emacs there exists editing support such as
+indentation, syntax highlighting, electric commands, module name
+verification, comment support including paragraph filling, skeletons,
+tags support and more. See the <a href="#tools#/index.html"
+target="_top">Tools</a> application for details.
+<p>
+There is also an
+<a href="http://erlide.sourceforge.net" target="_top">
+Erlang plugin (ErlIde) for Eclipse</a> if you prefer a more graphical
+environment. ErlIde is under development and should at the time
+of writing this be quite stable and useful.
+<li>When developing with Erlang/OTP you usually test your programs
+from the interactive shell (see <a href="getting_started/part_frame.html"
+target="_top">Getting Started With Erlang</a>) where you can call individual
+functions. There is also a number of tools available, such as the graphical <a
+href="#debugger#/index.html" target="_top">Debugger</a>, the process
+manager <a href="#pman#/index.html" target="_top">Pman</a> and table
+viewer <a href="#tv#/index.html" target="_top">TV</a>.
+<p> Also note that there are some shell features like history list
+(control-p and control-n), inline editing (emacs key bindings) and
+module and function name completion (tab) if the module is loaded.
+<p>
+
+<li>OpenSource users can ask questions
+and share experiences on the <a href="http://www.erlang.org/faq.html"
+target="_top">Erlang questions mailing list</a>. <p>
+
+<li>Before asking a question you can browse the <a
+href="http://www.erlang.org/pipermail/erlang-questions/"
+target="_top">mailing list archive</a> and read the <a
+href="http://www.erlang.org/faq/faq.html" target="_top">Frequently
+Asked Questions</a>. <p>
+
+<li>Additional information and links of interest for Erlang programmers can be found on the Erlang Open Source site
+<a href="http://www.erlang.org/" target="_top">http://www.erlang.org</a>.
+<p>
+
+</ul>
+
+</body>
+</html>
diff --git a/system/doc/top/templates/flip_closed.gif b/system/doc/top/templates/flip_closed.gif
new file mode 100755
index 0000000000..9a27c7c25d
--- /dev/null
+++ b/system/doc/top/templates/flip_closed.gif
Binary files differ
diff --git a/system/doc/top/templates/flip_google.gif b/system/doc/top/templates/flip_google.gif
new file mode 100755
index 0000000000..3f0543c2bb
--- /dev/null
+++ b/system/doc/top/templates/flip_google.gif
Binary files differ
diff --git a/system/doc/top/templates/flip_open.gif b/system/doc/top/templates/flip_open.gif
new file mode 100755
index 0000000000..9dda60e73a
--- /dev/null
+++ b/system/doc/top/templates/flip_open.gif
Binary files differ
diff --git a/system/doc/top/templates/flip_static.gif b/system/doc/top/templates/flip_static.gif
new file mode 100755
index 0000000000..2b3ddb5382
--- /dev/null
+++ b/system/doc/top/templates/flip_static.gif
Binary files differ
diff --git a/system/doc/top/templates/flipmenu.js b/system/doc/top/templates/flipmenu.js
new file mode 100755
index 0000000000..92a5a58a06
--- /dev/null
+++ b/system/doc/top/templates/flipmenu.js
@@ -0,0 +1,342 @@
+// ######################################################################
+
+// ## flipMenu 5.0.0 (c) J. Reijers
+// ## Last modifications: 23 March 2007
+
+// ######################################################################
+
+// ## Degree of indentation from the left.
+ flipIndentation = "5px";
+
+// ## Padding inbetween menu items.
+ flipVerticalPadding = "4px";
+
+// ## Margin between the left of the browser and the menu.
+ flipLeftMargin = "16px";
+
+// ## Margin between the top of the browser and the menu.
+ flipTopMargin = "10px";
+
+// ## Allow multiple menus to fold out without closing all the other open ones.
+ flipOpenMultipleMenus = false;
+
+// ## Preserve the current state of the menu (requires cookies).
+ flipSaveMenuState = true;
+
+// ## Use custom images for bullets
+ flipImages = true;
+
+// ## Images to use (specify full path)
+ flipImg_open = "flip_open.gif";
+ flipImg_closed = "flip_closed.gif";
+ flipImg_static = "flip_static.gif";
+
+// ## Initialise all flipMenus onload
+ flipInitOnLoad = true;
+
+// ## Message to display in status bar while loading
+ flipLoadingMessage = "Loading...";
+
+// ######################################################################
+
+function alterSize(someSize, alterAmount) {
+ someSize = String(someSize);
+ var tmpNr = parseFloat(someSize.replace(/\D/g, ""));
+ var tmpChar = someSize.replace(/\d/g, "");
+ return isNaN(tmpNr) ? someSize : ((tmpNr + alterAmount) + tmpChar);
+}
+
+isIE = (String(navigator.appVersion).indexOf("MSIE") > -1);
+if (!isIE) flipIndentation = alterSize(flipIndentation, -16);
+if (!isIE) flipLeftMargin = alterSize(flipLeftMargin, -16);
+
+document.write(
+ "<style type=\"text/css\">" +
+
+ "ul.flipMenu { margin-top: " + flipTopMargin + "; margin-left: " + flipLeftMargin + "; " + (flipImages ? "" : "list-style-type: none;") + " }" +
+ "ul.flipMenu ul, ul.flipMenu li { padding-top: " + flipVerticalPadding + "; margin-left: " + flipIndentation + "; margin-right: 0px; " + (flipImages ? "" : "list-style-type: none;") + " }" +
+
+ "li.flipFolderOpen { cursor: pointer; " + (flipImages ? "list-style-image: url(" + flipImg_open + ");" : "") + " }" +
+ "li.flipFolderClosed { cursor: pointer; " + (flipImages ? "list-style-image: url(" + flipImg_closed + ");" : "") + " }" +
+
+ "</style>"
+);
+
+if (flipImages) {
+ aFlipPreloads = [];
+ aFlipPreloads[0] = new Image;
+ aFlipPreloads[0].src = flipImg_open;
+ aFlipPreloads[1] = new Image;
+ aFlipPreloads[1].src = flipImg_closed;
+ aFlipPreloads[2] = new Image;
+ aFlipPreloads[2].src = flipImg_static;
+}
+
+function addEvent(someObj, someEvent, someFunction) {
+ if (someObj.addEventListener) { someObj.addEventListener(someEvent, someFunction, true); return true; } else if (someObj.attachEvent) return someObj.attachEvent("on" + someEvent, someFunction); else return false;
+}
+
+function openCloseFlip(theItem, newSetting, openParents) {
+ if (theItem.flipID) {
+ if (openParents) {
+ var tmpItem = theItem;
+ while (tmpItem.parentElement || tmpItem.parentNode) {
+ tmpItem = (tmpItem.parentElement) ? tmpItem.parentElement : tmpItem.parentNode;
+ openCloseFlip(tmpItem, newSetting);
+ }
+ }
+ if ((theItem.className == "flipFolderOpen" && newSetting == "closed") || (theItem.className == "flipFolderClosed" && newSetting == "open")) {
+ if (!theItem.childrenInitialised) {
+ for (var j = 0; j < theItem.childNodes.length; j++) if (theItem.childNodes[j].nodeName == "UL" && !theItem.childNodes[j].initialised) initFlip(theItem.childNodes[j]);
+ theItem.childrenInitialised = true;
+ }
+ theItem.getElementsByTagName("UL")[0].style.display = (newSetting == "open") ? "" : "none";
+ theItem.className = newSetting == "open" ? "flipFolderOpen" : "flipFolderClosed";
+ }
+ }
+}
+
+function openFlip(theItem, openParents) {
+ openCloseFlip(theItem, "open", openParents);
+}
+
+function closeFlip(theItem, closeParents) {
+ openCloseFlip(theItem, "closed", closeParents);
+}
+
+function toggleFlip(theElement) {
+ if (theElement.flipID) {
+ var theItem = theElement;
+ var isContained = true;
+ } else {
+ if (theElement && theElement.button > 0) return false;
+ var theItem = (isIE) ? event.srcElement : theElement.target;
+
+ var isContained = false;
+ if (theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed") isContained = true; else while (theItem.parentElement || theItem.parentNode) {
+ if (theItem.className == "flipStatic" || theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed") {
+ isContained = (theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed");
+ break;
+ }
+ theItem = (theItem.parentElement) ? theItem.parentElement : theItem.parentNode;
+ }
+ }
+
+ var toOpenFlip = (isContained && theItem.className == "flipFolderClosed");
+
+ if (!flipOpenMultipleMenus && (toOpenFlip || theItem.className == "flipStatic")) {
+ if (theItem.parentElement || theItem.parentNode) {
+ var parentUL = (theItem.parentElement) ? theItem.parentElement : theItem.parentNode;
+ for (var i = 0; i < parentUL.childNodes.length; i++) closeFlip(parentUL.childNodes[i]);
+ }
+ }
+
+ if (isContained) {
+ if (toOpenFlip) openFlip(theItem); else closeFlip(theItem);
+ }
+}
+
+function setAllFlips(startElement, newSetting) {
+ if (typeof startElement == "undefined") var startElement = document;
+ if (typeof newSetting == "undefined") var newSetting = "closed";
+
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var parentFlip = aUL[i].parentElement ? aUL[i].parentElement : aUL[i].parentNode;
+ openCloseFlip(parentFlip, newSetting);
+ }
+}
+
+function openAllFlips(startElement) {
+ setAllFlips(startElement, "open");
+}
+
+function closeAllFlips(startElement) {
+ setAllFlips(startElement, "closed");
+}
+
+function initFlip(startElement) {
+ if (!document.createElement) return false;
+
+ if (!startElement || !startElement.nodeName) {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ if (flipLoadingMessage != "") window.status = flipLoadingMessage + " " + parseInt((i / (aUL.length - 1)) * 100, 10) + "%";
+ var curUL = aUL[i];
+ if (curUL.className == "flipMenu") {
+ initFlip(curUL);
+
+ // ## Fix text selecting problem in Mozilla
+ curUL.onselectstart = new Function("return false");
+ curUL.onmousedown = new Function("return false");
+ curUL.onclick = new Function("return true");
+ }
+ }
+
+ if (flipSaveMenuState) loadMenuState();
+
+ if (flipLoadingMessage != "") window.status = "";
+ return true;
+ }
+
+ if (startElement.className == "flipMenu") startElement.style.display = "";
+
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return false;
+
+ if (typeof flipIDCur == "undefined") flipIDCur = 0;
+ if (!startElement.initialised) {
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) aUL[i].style.display = "none";
+ }
+
+ for (var i = 0; i < startElement.childNodes.length; i++) {
+ var curNode = startElement.childNodes[i];
+ if (curNode.nodeName == "LI") {
+ flipIDCur++;
+ curNode.flipID = flipIDCur;
+
+ var nodeHasChildren = curNode.getElementsByTagName("UL").length > 0;
+ if (nodeHasChildren) {
+ if (flipImages && curNode.flipClosed) curNode.style.listStyleImage = "url(" + curNode.flipClosed + ")";
+
+ if (curNode.className == null || curNode.className == "") curNode.className = "flipFolderClosed";
+ } else {
+ curNode.className = "flipStatic";
+ if (flipImages && !curNode.style.listStyleImage) {
+ if (!curNode.flipStatic) curNode.flipStatic = flipImg_static;
+ curNode.style.listStyleImage = "url(" + curNode.flipStatic + ")";
+ }
+ }
+
+ if (!curNode.flipOpen) curNode.flipOpen = flipImg_open;
+ if (!curNode.flipClosed) curNode.flipClosed = flipImg_closed;
+
+ if (curNode.flipIsOpen) openFlip(curNode);
+ }
+ }
+
+ startElement.initialised = true;
+}
+
+function rootOfFlip(flipID, startElement) {
+
+ function containsFlip(startElement, flipID) {
+ var flipFound = false;
+ var i = 0;
+ while (i < startElement.childNodes.length && !flipFound) {
+ var curNode = startElement.childNodes[i];
+ flipFound = (curNode.flipID == flipID) ? true : containsFlip(curNode, flipID);
+ i++;
+ }
+ return flipFound;
+ }
+
+ var rootFlip = null;
+
+ if (!startElement || !startElement.nodeName) {
+ var aUL = document.getElementsByTagName("UL");
+ var i = 0;
+ while (rootFlip == null && i < aUL.length) {
+ var curUL = aUL[i];
+ if (curUL.nodeName == "UL" && curUL.className == "flipMenu") rootFlip = rootOfFlip(flipID, curUL);
+ i++;
+ }
+ return rootFlip;
+ }
+
+ if (startElement.childNodes) for (var i = 0; i < startElement.childNodes.length; i++) {
+ var curNode = startElement.childNodes[i];
+ if (curNode.flipID == flipID || containsFlip(curNode, flipID)) rootFlip = curNode;
+ }
+
+ return rootFlip;
+}
+
+function getCookie(cookieName) {
+ var allCookies = document.cookie;
+ var indexStr = allCookies.indexOf(cookieName + "=");
+ if (indexStr == -1) return "";
+ indexStr = allCookies.indexOf("=", indexStr) + 1;
+ var endStr = allCookies.indexOf(";", indexStr);
+ if (endStr == -1) endStr = allCookies.length;
+ return unescape(allCookies.substring(indexStr, endStr));
+}
+
+function inArray(someID, someArray) {
+ for (var i = 0; i < someArray.length; i++) if (someArray[i] == someID) return true;
+ return false;
+}
+
+function getMenuState(startElement) {
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return "";
+
+ var openItems = "";
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curNode = aUL[i];
+ var parentFlip = (curNode.parentElement) ? curNode.parentElement : curNode.parentNode;
+ if (curNode.style.display == "" && parentFlip.flipID) openItems += " " + parentFlip.flipID;
+ }
+ return openItems;
+}
+
+function putMenuState(startElement) {
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return false;
+
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curNode = aUL[i];
+ var parentFlip = (curNode.parentElement) ? curNode.parentElement : curNode.parentNode;
+ if (inArray(parentFlip.flipID, aOpenItems)) {
+ openFlip(parentFlip);
+ if (typeof prevFlipRoot == "undefined") {
+ var testRoot = rootOfFlip(parentFlip.flipID);
+ if (testRoot.flipID == parentFlip.flipID) prevFlipRoot = testRoot;
+ }
+ }
+ }
+}
+
+function saveMenuState() {
+ if (flipSaveMenuState) {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") document.cookie = cookiePrefix + curID + "=" + getMenuState(curUL) + ";";
+ }
+ }
+}
+
+function loadMenuState() {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") {
+ var savedState = String(getCookie(cookiePrefix + curID));
+ if (savedState != "") {
+ aOpenItems = savedState.split(" ");
+ putMenuState(curUL);
+ }
+ }
+ }
+
+ addEvent(window, "unload", saveMenuState);
+}
+
+function clearMenuState(flipMenuID) {
+ if (typeof flipMenuID == "undefined") {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") document.cookie = cookiePrefix + curID + "=;";
+ }
+ } else document.cookie = cookiePrefix + flipMenuID + "=;";
+}
+
+cookiePrefix = document.location.pathname + "_";
+
+addEvent(document, "click", toggleFlip);
+if (flipInitOnLoad) addEvent(window, "load", initFlip);
diff --git a/system/doc/top/templates/index.html.src b/system/doc/top/templates/index.html.src
new file mode 100644
index 0000000000..935bb11c80
--- /dev/null
+++ b/system/doc/top/templates/index.html.src
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!--
+%CopyrightBegin%
+
+Copyright Ericsson AB 2001-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%
+-->
+
+<html>
+<head>
+ <link rel="stylesheet" href="otp_doc.css" type="text/css"/>
+ <title>Erlang/OTP #release#</title>
+
+<script id="js" type="text/javascript" language="JavaScript" src="js/flipmenu/flipmenu.js">
+
+</script>
+</head>
+
+<body bgcolor=white text="#000000" link="#0000ff" vlink="#ff00ff"
+ alink="#ff0000">
+
+<div id="container">
+<div id="leftnav">
+<div class="innertube">
+<img alt="Erlang logo" src="erlang-logo.png"/ >
+<!-- small><a href="glossary.html">Glossary</a> |-->
+<small><a href="applications.html">Applications</a><br>
+<a href="man_index.html">Modules</a></small>
+<p/>
+<small><a href="highlights.html">Release highlights</a><br>
+<a href="incompatible.html">Potential incompatibilities</a><br>
+</small>
+<br>
+<a href="javascript:openAllFlips()">Expand All</a><br>
+<a href="javascript:closeAllFlips()">Contract All</a>
+<p/>
+
+<ul class="flipMenu">
+<li>Erlang/OTP System Documentation
+<ul>
+<li><a href="installation_guide/users_guide.html">Installation Guide</a></li>
+<li><a href="system_principles/users_guide.html">System Principles</a></li>
+<li><a href="embedded/users_guide.html">Embedded System</a></li>
+<li><a href="getting_started/users_guide.html">Getting Started</a></li>
+<li><a href="reference_manual/users_guide.html">Erlang Reference Manual</a></li>
+<li><a href="programming_examples/users_guide.html">Programming Examples</a></li>
+<li><a href="efficiency_guide/users_guide.html">Efficiency Guide</a></li>
+<li><a href="tutorial/users_guide.html">Interoperability Tutorial</a></li>
+<li><a href="design_principles/users_guide.html">Design Principles</a></li>
+<li><a href="oam/users_guide.html">OAM Principles</a></li>
+</ul>
+</li>
+
+#applinks#
+</ul>
+
+</div>
+</div>
+
+
+<div id="content">
+<div class="innertube">
+<center>
+<font size="+1"><b>Erlang/OTP #release#</b></font><br>
+</center>
+<center>
+<p>
+<font size="+1">Welcome to Erlang/OTP, a complete<br>
+development environment<br>
+for concurrent programming.</font>
+</p>
+</center>
+<br>
+<br>
+<br>
+<p><b>
+<font size="+1">
+Some hints that may get you started faster
+</font>
+</b></p>
+
+<ul>
+
+<li>
+The complete Erlang language is described in the
+<a href="reference_manual/users_guide.html">Erlang Reference Manual</a>.
+An Erlang tutorial can be found in
+<a href="getting_started/users_guide.html">
+Getting Started With Erlang</a>.
+<p>
+In addition to the documentation here Erlang is described in several recent books like:
+</p>
+<ul>
+<li>
+<a href="http://oreilly.com/catalog/9780596518189">"Erlang Programming"</a> from O'Reilly.
+</li>
+<li>
+<a href="http://www.pragprog.com/titles/jaerlang">"Programming Erlang"</a> from Pragmatic.
+</li>
+</ul>
+<p>
+These books are highly recommended as a start for learning Erlang.
+</p>
+</li>
+<li>Erlang/OTP is divided into a number of OTP <a
+href="applications.html">applications</a>. An application normally contains
+Erlang <a href="man_index.html">modules</a>. Some OTP applications,
+such as the C interface <em>erl_interface</em>, are written in other languages and have no Erlang
+modules.
+
+<p>
+<li>On a Unix system you can view the manual pages from the command
+line using
+<pre>
+ % erl -man &lt;module&gt;
+</pre>
+<p>
+
+<li> You can of course use any editor you like to write Erlang
+programs, but if you use Emacs there exists editing support such as
+indentation, syntax highlighting, electric commands, module name
+verification, comment support including paragraph filling, skeletons,
+tags support and more. See the <a href="#tools#/index.html">
+Tools</a> application for details.
+<p>
+There is also an
+<a href="http://erlide.sourceforge.net">
+Erlang plugin (ErlIDE) for Eclipse</a> if you prefer a more graphical
+environment. ErlIDE is under active development with new features in almost every release.
+<li>When developing with Erlang/OTP you usually test your programs
+from the interactive shell (see <a href="getting_started/users_guide.html">
+Getting Started With Erlang</a>) where you can call individual
+functions. There is also a number of tools available, such as the graphical <a
+href="#debugger#/index.html" >Debugger</a>, the process
+manager <a href="#pman#/index.html" >Pman</a> and table
+viewer <a href="#tv#/index.html">TV</a>.
+<p> Also note that there are some shell features like history list
+(control-p and control-n), in line editing (Emacs key bindings) and
+module and function name completion (tab) if the module is loaded.
+<p>
+
+<li>OpenSource users can ask questions
+and share experiences on the <a href="http://www.erlang.org/faq.html">
+Erlang questions mailing list</a>. <p>
+
+<li>Before asking a question you can browse the <a
+href="http://www.erlang.org/pipermail/erlang-questions/">
+mailing list archive</a> and read the <a
+href="http://www.erlang.org/faq/faq.html" >Frequently
+Asked Questions</a>. <p>
+
+<li>Additional information and links of interest for Erlang programmers can be found on the Erlang Open Source site
+<a href="http://www.erlang.org/">http://www.erlang.org</a>.
+<p>
+
+</ul>
+
+<center>
+<small>
+Copyright &copy; 1999-2009
+<a href="http://www.ericsson.com">Ericsson AB</a>
+</small>
+</center>
+</div>
+</div>
+</div>
+</body>
+</html>
diff --git a/system/doc/top/templates/otp_top.css b/system/doc/top/templates/otp_top.css
new file mode 100644
index 0000000000..1c6d27bd8d
--- /dev/null
+++ b/system/doc/top/templates/otp_top.css
@@ -0,0 +1,53 @@
+ BODY { background: white }
+
+ BODY { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TH { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TD { font-family: Verdana, Arial, Helvetica, sans-serif }
+ P { font-family: Verdana, Arial, Helvetica, sans-serif }
+
+ .header { background: #222; color: #fff }
+ .top { background: #efe }
+ .otp { background: #efe }
+ .erlang { background: #ffe }
+ .otp2 { background: #efe }
+ .app { background: #ffe }
+
+ a:link { color: blue; text-decoration: none }
+ a:active { color: blue; text-decoration: none }
+ a:visited { color: blue; text-decoration: none }
+ body {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ overflow: scroll;
+ height: 100%;
+ max-height: 100%
+ }
+ #container {
+ width: 100%;
+ margin: 10px auto;
+ background-color: #fff;
+ }
+ #leftnav {
+ float: left;
+ width: 200px;
+ margin: 0;
+ padding: 1em;
+ }
+ #content {
+ margin-left: 220px; /* set left value to WidthOfFrameDiv */
+ border-left: 1px solid red;
+ }
+
+ .innertube {
+ margin: 15px; /* Magins for inner DIV inside each DIV (to provide padding) */
+ }
+
+ * html body{ /* IE6 hack */
+ padding: 0 0 0 200px; /* Set value to (0 0 0 WidthOfFrameDiv)*/
+ }
+ * html #maincontent{ /* IE6 hack*/
+ height: 100%;
+ width: 100%;
+ }
+
diff --git a/system/doc/top/templates/system.html.src b/system/doc/top/templates/system.html.src
new file mode 100644
index 0000000000..761bc96ed0
--- /dev/null
+++ b/system/doc/top/templates/system.html.src
@@ -0,0 +1,281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Erlang/OTP #release#</title>
+ <style type="text/css">
+<!--
+ BODY { background: white }
+
+ BODY { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TH { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TD { font-family: Verdana, Arial, Helvetica, sans-serif }
+ P { font-family: Verdana, Arial, Helvetica, sans-serif }
+
+ .header { background: #222; color: #fff }
+ .app { background: #ccc }
+
+ a.anum:link { color: green; text-decoration: none }
+ a.anum:active { color: green; text-decoration: none }
+ a.anum:visited { color: green; text-decoration: none }
+
+ a:link { text-decoration: none }
+ a:active { text-decoration: none }
+ a:visited { text-decoration: none }
+-->
+ </style>
+</head>
+
+<body bgcolor=white text="#000000" link="#0000ff" vlink="#ff00ff"
+ alink="#ff0000">
+<center>
+<table border=0 width="90%" cellspacing=3 cellpadding=5>
+
+ <tr>
+ <td colspan=2 class=header>
+ <font size="+1"><b>General</b></font>
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="system_architecture_intro/part_frame.html" target="_top"
+ name=system_architecture_intro>
+ Introduction
+ </a>
+ </td>
+ <td align=right valign=top width=50>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+About Erlang, OTP, Erlang/OTP and this documentation
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="installation_guide/part_frame.html" target="_top"
+ name=installation_guide>
+ Installation Guide
+ </a>
+ </td>
+ <td align=right valign=top width=50>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+The Erlang/OTP Installation Guide
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="system_principles/part_frame.html" target="_top"
+ name=system_principles>
+ System Principles
+ </a>
+ </td>
+ <td align=right valign=top width=20>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+Starting, stopping and configuring the Erlang runtime system
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="embedded/part_frame.html" target="_top" name=embedded>
+ Embedded System
+ </a>
+ </td>
+ <td align=right valign=top width=50>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+Erlang in an Embedded System
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=2><font size=1>&nbsp;</font></td>
+ </tr>
+
+<!-- ====================================================================== -->
+
+ <tr>
+ <td colspan=2 class=header>
+ <font size="+1"><b>Programming in Erlang</b></font>
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="reference_manual/part_frame.html" target="_top" name=reference_manual>
+ Erlang Reference Manual
+ </a>
+ </td>
+ <td align=right valign=top width=50>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+Description of data types, language constructs and more
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="getting_started/part_frame.html" target="_top" name=getting_started>
+ Getting Started
+ </a>
+ </td>
+ <td align=right valign=top width=50>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+Getting started with Erlang
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="programming_examples/part_frame.html" target="_top" name=programming_examples>
+ Programming Examples
+ </a>
+ </td>
+ <td align=right valign=top width=50>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+Examples of using records, funs, list comprehensions and the bit syntax
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="efficiency_guide/part_frame.html" target="_top" name=efficiency_guide>Efficiency Guide</a>
+ </td>
+ <td align=right valign=top width=20>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+Learn how to write efficient programs in Erlang
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="tutorial/part_frame.html" target="_top" name=tutorial>Interoperability Tutorial</a>
+ </td>
+ <td align=right valign=top width=20>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+About interoperating with programs written in other programming languages
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=2><font size=1>&nbsp;</font></td>
+ </tr>
+
+<!-- ====================================================================== -->
+
+ <tr>
+ <td colspan=2 class=header>
+ <font size="+1"><b>Working with OTP</b></font>
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="design_principles/part_frame.html" target="_top"
+ name=design_principles>
+ Design Principles
+ </a>
+ </td>
+ <td align=right valign=top width=20>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+Structure your programs with applications, supervisors and generic behaviors (gen_server, gen_event and gen_fsm).
+Also use the built in error logger.
+ </td>
+ </tr>
+
+ <tr class=app>
+ <td align=left valign=top>
+ <table border=0 width="100%" cellspacing=0 cellpadding=0>
+ <tr class=app>
+ <td align=left valign=top>
+ <a href="oam/part_frame.html" target="_top" name=oam>OAM Principles</a>
+ </td>
+ <td align=right valign=top width=20>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=left valign=top>
+OTP Operation and Management Principles
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=2><font size=1>&nbsp;</font></td>
+ </tr>
+
+</table>
+
+</center>
+</body>
+</html>
+
+
diff --git a/system/doc/top/templates/toc_.html.src b/system/doc/top/templates/toc_.html.src
new file mode 100644
index 0000000000..5e79bc0ac8
--- /dev/null
+++ b/system/doc/top/templates/toc_.html.src
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Erlang/OTP #release#</title>
+ <style type="text/css">
+<!--
+ BODY { background: white }
+
+ BODY { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TH { font-family: Verdana, Arial, Helvetica, sans-serif }
+ TD { font-family: Verdana, Arial, Helvetica, sans-serif }
+ P { font-family: Verdana, Arial, Helvetica, sans-serif }
+
+ .header { background: #222; color: #fff }
+ .top { background: #efe }
+ .otp { background: #efe }
+ .erlang { background: #ffe }
+ .otp2 { background: #efe }
+ .app { background: #ffe }
+
+ a:link { color: blue; text-decoration: none }
+ a:active { color: blue; text-decoration: none }
+ a:visited { color: blue; text-decoration: none }
+-->
+ </style>
+</head>
+
+<body bgcolor=white text="#000000" link="#0000ff" vlink="#ff00ff"
+ alink="#ff0000">
+<center>
+<font size="+1"><b>Erlang/OTP #release#</b></font><br>
+</center>
+
+<div class=top>
+<small><a href="glossary.html" target=body>Glossary</a> |
+<a href="man_index.html" target=body>Modules</a> |
+<a href="permuted_index/pidxa.html" target=body>Index</a></small>
+<p>
+<small><a href="highlights.html" target=body>Release highlights</a><br>
+<a href="incompatible.html" target=body>Potential incompatibilities</a>
+</small>
+</div>
+
+<p>
+<div class=otp>
+Erlang/OTP
+<br>
+&middot;<small><a href="installation_guide/part_frame.html" target="_top"
+ name=installation_guide>Installation Guide</a></small>
+
+<br>
+&middot;<small><a href="system_principles/part_frame.html" target="_top"
+ name=system_principles>System Principles</a></small>
+
+<br>
+&middot;<small><a href="embedded/part_frame.html" target="_top" name=embedded>Embedded System</a></small>
+
+</div>
+
+<p>
+<div class=erlang>
+Erlang Programming
+<br>
+&middot;<small><a href="getting_started/part_frame.html" target="_top" name=getting_started>Getting
+Started</a></small>
+
+<br>
+&middot;<small><a href="reference_manual/part_frame.html" target="_top" name=reference_manual>Erlang
+Reference Manual</a></small>
+
+<br>
+&middot;<small><a href="programming_examples/part_frame.html" target="_top" name=programming_examples>Programming
+Examples</a></small>
+
+<br>
+&middot;<small><a href="efficiency_guide/part_frame.html" target="_top" name=efficiency_guide>Efficiency Guide</a></small>
+
+<br>
+&middot;<small><a href="tutorial/part_frame.html" target="_top" name=tutorial>Interoperability Tutorial</a></small>
+</div>
+
+<p>
+<div class=otp2>
+Working with OTP
+<br>
+&middot;<small><a href="design_principles/part_frame.html" target="_top"
+ name=design_principles>Design Principles</a>
+</small>
+
+<br>
+&middot;<small><a href="oam/part_frame.html" target="_top" name=oam>OAM Principles</a></small>
+
+</div>
+
+<p>
+<div class=app>
+Applications
+<small>#applinks#</small>
+</div>
+
+<p>
+<a href="http://www.erlang.se/" target=body>http://www.erlang.se</a>
+
+</body>
+</html>