summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/api/addons.md2
-rw-r--r--doc/api/assert.md2
-rw-r--r--doc/api/buffer.md2
-rwxr-xr-xdoc/api/child_process.md2
-rw-r--r--doc/api/cli.md1
-rw-r--r--doc/api/cluster.md2
-rw-r--r--doc/api/console.md2
-rw-r--r--doc/api/crypto.md2
-rw-r--r--doc/api/debugger.md2
-rw-r--r--doc/api/dgram.md2
-rw-r--r--doc/api/dns.md2
-rw-r--r--doc/api/documentation.md1
-rw-r--r--doc/api/domain.md2
-rw-r--r--doc/api/errors.md1
-rw-r--r--doc/api/events.md2
-rw-r--r--doc/api/fs.md2
-rw-r--r--doc/api/globals.md1
-rw-r--r--doc/api/http.md2
-rw-r--r--doc/api/https.md2
-rw-r--r--doc/api/modules.md2
-rw-r--r--doc/api/net.md2
-rw-r--r--doc/api/os.md2
-rw-r--r--doc/api/path.md2
-rw-r--r--doc/api/process.md1
-rw-r--r--doc/api/punycode.md2
-rw-r--r--doc/api/querystring.md2
-rw-r--r--doc/api/readline.md2
-rw-r--r--doc/api/repl.md2
-rw-r--r--doc/api/stream.md2
-rw-r--r--doc/api/string_decoder.md2
-rw-r--r--doc/api/synopsis.md1
-rw-r--r--doc/api/timers.md2
-rw-r--r--doc/api/tls.md2
-rw-r--r--doc/api/tty.md2
-rw-r--r--doc/api/url.md2
-rw-r--r--doc/api/util.md2
-rw-r--r--doc/api/v8.md2
-rw-r--r--doc/api/vm.md2
-rw-r--r--doc/api/zlib.md2
-rw-r--r--doc/api_assets/style.css58
-rw-r--r--doc/template.html20
-rw-r--r--tools/doc/html.js53
42 files changed, 197 insertions, 6 deletions
diff --git a/doc/api/addons.md b/doc/api/addons.md
index f09b2e7ee6..bd17510333 100644
--- a/doc/api/addons.md
+++ b/doc/api/addons.md
@@ -1,5 +1,7 @@
# C++ Addons
+<!--introduced_in=v0.10.0-->
+
Node.js Addons are dynamically-linked shared objects, written in C++, that
can be loaded into Node.js using the [`require()`][require] function, and used
just as if they were an ordinary Node.js module. They are used primarily to
diff --git a/doc/api/assert.md b/doc/api/assert.md
index 5126c334e1..6661459563 100644
--- a/doc/api/assert.md
+++ b/doc/api/assert.md
@@ -1,5 +1,7 @@
# Assert
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `assert` module provides a simple set of assertion tests that can be used to
diff --git a/doc/api/buffer.md b/doc/api/buffer.md
index 0301eadd3b..363b10bc66 100644
--- a/doc/api/buffer.md
+++ b/doc/api/buffer.md
@@ -1,5 +1,7 @@
# Buffer
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
Prior to the introduction of [`TypedArray`] in ECMAScript 2015 (ES6), the
diff --git a/doc/api/child_process.md b/doc/api/child_process.md
index dde0ec8574..f4a843fc09 100755
--- a/doc/api/child_process.md
+++ b/doc/api/child_process.md
@@ -1,5 +1,7 @@
# Child Process
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `child_process` module provides the ability to spawn child processes in
diff --git a/doc/api/cli.md b/doc/api/cli.md
index beceebec77..752df72da8 100644
--- a/doc/api/cli.md
+++ b/doc/api/cli.md
@@ -1,5 +1,6 @@
# Command Line Options
+<!--introduced_in=v5.9.1-->
<!--type=misc-->
Node.js comes with a variety of CLI options. These options expose built-in
diff --git a/doc/api/cluster.md b/doc/api/cluster.md
index 95c9786501..a3146e0f60 100644
--- a/doc/api/cluster.md
+++ b/doc/api/cluster.md
@@ -1,5 +1,7 @@
# Cluster
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
A single instance of Node.js runs in a single thread. To take advantage of
diff --git a/doc/api/console.md b/doc/api/console.md
index ee130d7b97..0bd72cd776 100644
--- a/doc/api/console.md
+++ b/doc/api/console.md
@@ -1,5 +1,7 @@
# Console
+<!--introduced_in=v0.10.13-->
+
> Stability: 2 - Stable
The `console` module provides a simple debugging console that is similar to the
diff --git a/doc/api/crypto.md b/doc/api/crypto.md
index 05e0245086..bf5e7169c1 100644
--- a/doc/api/crypto.md
+++ b/doc/api/crypto.md
@@ -1,5 +1,7 @@
# Crypto
+<!--introduced_in=v0.3.6-->
+
> Stability: 2 - Stable
The `crypto` module provides cryptographic functionality that includes a set of
diff --git a/doc/api/debugger.md b/doc/api/debugger.md
index 1a2070d3f4..e16c83122e 100644
--- a/doc/api/debugger.md
+++ b/doc/api/debugger.md
@@ -1,5 +1,7 @@
# Debugger
+<!--introduced_in=v0.9.12-->
+
> Stability: 2 - Stable
<!-- type=misc -->
diff --git a/doc/api/dgram.md b/doc/api/dgram.md
index c3fcfb0528..3e77827a5e 100644
--- a/doc/api/dgram.md
+++ b/doc/api/dgram.md
@@ -1,5 +1,7 @@
# UDP / Datagram Sockets
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
<!-- name=dgram -->
diff --git a/doc/api/dns.md b/doc/api/dns.md
index 4248bdf43a..5e9fc97bbc 100644
--- a/doc/api/dns.md
+++ b/doc/api/dns.md
@@ -1,5 +1,7 @@
# DNS
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `dns` module contains functions belonging to two different categories:
diff --git a/doc/api/documentation.md b/doc/api/documentation.md
index a12f00e1d6..802bf3613f 100644
--- a/doc/api/documentation.md
+++ b/doc/api/documentation.md
@@ -1,5 +1,6 @@
# About this Documentation
+<!--introduced_in=v0.10.0-->
<!-- type=misc -->
The goal of this documentation is to comprehensively explain the Node.js
diff --git a/doc/api/domain.md b/doc/api/domain.md
index 102ac8ec7c..a4a31d4fec 100644
--- a/doc/api/domain.md
+++ b/doc/api/domain.md
@@ -7,6 +7,8 @@ changes:
the first promise of a chain was created.
-->
+<!--introduced_in=v0.10.0-->
+
> Stability: 0 - Deprecated
**This module is pending deprecation**. Once a replacement API has been
diff --git a/doc/api/errors.md b/doc/api/errors.md
index 7b29ab6ddb..3d2761b54c 100644
--- a/doc/api/errors.md
+++ b/doc/api/errors.md
@@ -1,5 +1,6 @@
# Errors
+<!--introduced_in=v4.0.0-->
<!--type=misc-->
Applications running in Node.js will generally experience four categories of
diff --git a/doc/api/events.md b/doc/api/events.md
index ff6fbe9bb9..99c2e1514b 100644
--- a/doc/api/events.md
+++ b/doc/api/events.md
@@ -1,5 +1,7 @@
# Events
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
<!--type=module-->
diff --git a/doc/api/fs.md b/doc/api/fs.md
index 929cf6941e..a83d042227 100644
--- a/doc/api/fs.md
+++ b/doc/api/fs.md
@@ -1,5 +1,7 @@
# File System
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
<!--name=fs-->
diff --git a/doc/api/globals.md b/doc/api/globals.md
index f3a2fc6377..a2e5b5fc89 100644
--- a/doc/api/globals.md
+++ b/doc/api/globals.md
@@ -1,5 +1,6 @@
# Global Objects
+<!--introduced_in=v0.10.0-->
<!-- type=misc -->
These objects are available in all modules. The following variables may appear
diff --git a/doc/api/http.md b/doc/api/http.md
index 8558900d88..9c1fbb3d6b 100644
--- a/doc/api/http.md
+++ b/doc/api/http.md
@@ -1,5 +1,7 @@
# HTTP
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
To use the HTTP server and client one must `require('http')`.
diff --git a/doc/api/https.md b/doc/api/https.md
index f6c56ef8ed..3ff97bf446 100644
--- a/doc/api/https.md
+++ b/doc/api/https.md
@@ -1,5 +1,7 @@
# HTTPS
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a
diff --git a/doc/api/modules.md b/doc/api/modules.md
index 13e3731cae..afddbc14c4 100644
--- a/doc/api/modules.md
+++ b/doc/api/modules.md
@@ -1,5 +1,7 @@
# Modules
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
<!--name=module-->
diff --git a/doc/api/net.md b/doc/api/net.md
index 686ee300cc..36280c0649 100644
--- a/doc/api/net.md
+++ b/doc/api/net.md
@@ -1,5 +1,7 @@
# Net
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `net` module provides an asynchronous network API for creating stream-based
diff --git a/doc/api/os.md b/doc/api/os.md
index bb4ffdc376..28eff6a13f 100644
--- a/doc/api/os.md
+++ b/doc/api/os.md
@@ -1,5 +1,7 @@
# OS
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `os` module provides a number of operating system-related utility methods.
diff --git a/doc/api/path.md b/doc/api/path.md
index f951a4ab8a..f2015db470 100644
--- a/doc/api/path.md
+++ b/doc/api/path.md
@@ -1,5 +1,7 @@
# Path
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `path` module provides utilities for working with file and directory paths.
diff --git a/doc/api/process.md b/doc/api/process.md
index a6da470e78..e24bf19d9d 100644
--- a/doc/api/process.md
+++ b/doc/api/process.md
@@ -1,5 +1,6 @@
# Process
+<!-- introduced_in=v0.10.0 -->
<!-- type=global -->
The `process` object is a `global` that provides information about, and control
diff --git a/doc/api/punycode.md b/doc/api/punycode.md
index b88a898326..03ee3d62eb 100644
--- a/doc/api/punycode.md
+++ b/doc/api/punycode.md
@@ -6,6 +6,8 @@ changes:
description: Accessing this module will now emit a deprecation warning.
-->
+<!--introduced_in=v0.10.0-->
+
> Stability: 0 - Deprecated
**The version of the punycode module bundled in Node.js is being deprecated**.
diff --git a/doc/api/querystring.md b/doc/api/querystring.md
index c6b89235c1..5bd4f1cce1 100644
--- a/doc/api/querystring.md
+++ b/doc/api/querystring.md
@@ -1,5 +1,7 @@
# Query String
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
<!--name=querystring-->
diff --git a/doc/api/readline.md b/doc/api/readline.md
index 085ac88540..603a5ec188 100644
--- a/doc/api/readline.md
+++ b/doc/api/readline.md
@@ -1,5 +1,7 @@
# Readline
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `readline` module provides an interface for reading data from a [Readable][]
diff --git a/doc/api/repl.md b/doc/api/repl.md
index 618744f6e2..d61e9be57c 100644
--- a/doc/api/repl.md
+++ b/doc/api/repl.md
@@ -1,5 +1,7 @@
# REPL
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `repl` module provides a Read-Eval-Print-Loop (REPL) implementation that
diff --git a/doc/api/stream.md b/doc/api/stream.md
index 23b8aa55e1..efa69532ef 100644
--- a/doc/api/stream.md
+++ b/doc/api/stream.md
@@ -1,5 +1,7 @@
# Stream
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
A stream is an abstract interface for working with streaming data in Node.js.
diff --git a/doc/api/string_decoder.md b/doc/api/string_decoder.md
index 5757ba6e2b..cde81e6ae5 100644
--- a/doc/api/string_decoder.md
+++ b/doc/api/string_decoder.md
@@ -1,5 +1,7 @@
# String Decoder
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `string_decoder` module provides an API for decoding `Buffer` objects into
diff --git a/doc/api/synopsis.md b/doc/api/synopsis.md
index e8fa77eee4..3d680c33b5 100644
--- a/doc/api/synopsis.md
+++ b/doc/api/synopsis.md
@@ -1,5 +1,6 @@
# Usage
+<!--introduced_in=v0.10.0-->
<!--type=misc-->
`node [options] [v8 options] [script.js | -e "script" | - ] [arguments]`
diff --git a/doc/api/timers.md b/doc/api/timers.md
index 8abcdcb5cb..09502dee10 100644
--- a/doc/api/timers.md
+++ b/doc/api/timers.md
@@ -1,5 +1,7 @@
# Timers
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `timer` module exposes a global API for scheduling functions to
diff --git a/doc/api/tls.md b/doc/api/tls.md
index 5df8c6af5e..e18bbb62b1 100644
--- a/doc/api/tls.md
+++ b/doc/api/tls.md
@@ -1,5 +1,7 @@
# TLS (SSL)
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `tls` module provides an implementation of the Transport Layer Security
diff --git a/doc/api/tty.md b/doc/api/tty.md
index 963de892cb..2950eb6db1 100644
--- a/doc/api/tty.md
+++ b/doc/api/tty.md
@@ -1,5 +1,7 @@
# TTY
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `tty` module provides the `tty.ReadStream` and `tty.WriteStream` classes.
diff --git a/doc/api/url.md b/doc/api/url.md
index cb2a3965f5..632eef82e4 100644
--- a/doc/api/url.md
+++ b/doc/api/url.md
@@ -1,5 +1,7 @@
# URL
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `url` module provides utilities for URL resolution and parsing. It can be
diff --git a/doc/api/util.md b/doc/api/util.md
index 076fbc479d..ce56c50104 100644
--- a/doc/api/util.md
+++ b/doc/api/util.md
@@ -1,5 +1,7 @@
# Util
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `util` module is primarily designed to support the needs of Node.js' own
diff --git a/doc/api/v8.md b/doc/api/v8.md
index 3a3e5f664a..634d3199a1 100644
--- a/doc/api/v8.md
+++ b/doc/api/v8.md
@@ -1,5 +1,7 @@
# V8
+<!--introduced_in=v4.0.0-->
+
The `v8` module exposes APIs that are specific to the version of [V8][]
built into the Node.js binary. It can be accessed using:
diff --git a/doc/api/vm.md b/doc/api/vm.md
index 42046e0119..dff10b17cf 100644
--- a/doc/api/vm.md
+++ b/doc/api/vm.md
@@ -1,5 +1,7 @@
# VM (Executing JavaScript)
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
<!--name=vm-->
diff --git a/doc/api/zlib.md b/doc/api/zlib.md
index 0f58979949..ed94896e97 100644
--- a/doc/api/zlib.md
+++ b/doc/api/zlib.md
@@ -1,5 +1,7 @@
# Zlib
+<!--introduced_in=v0.10.0-->
+
> Stability: 2 - Stable
The `zlib` module provides compression functionality implemented using Gzip and
diff --git a/doc/api_assets/style.css b/doc/api_assets/style.css
index 3761be4031..6d764fd889 100644
--- a/doc/api_assets/style.css
+++ b/doc/api_assets/style.css
@@ -81,6 +81,61 @@ em code {
#gtoc {
font-size: .8em;
+ margin-bottom: 1em;
+}
+
+#gtoc ul {
+ list-style: none;
+ margin-left: 0;
+}
+
+#gtoc li {
+ display: inline;
+}
+
+li.version-picker {
+ position: relative;
+}
+
+li.version-picker:hover > ol {
+ display: block;
+}
+
+li.version-picker a span {
+ font-size: .7em;
+}
+
+ol.version-picker {
+ background: #fff;
+ border: 1px #43853d solid;
+ border-radius: 2px;
+ display: none;
+ list-style: none;
+ position: absolute;
+ right: -2px;
+ width: 101%;
+}
+
+#gtoc ol.version-picker li {
+ display: block;
+}
+
+ol.version-picker li a {
+ border-radius: 0;
+ display: block;
+ margin: 0;
+ padding: .1em;
+ padding-left: 1em;
+}
+
+ol.version-picker li:first-child a {
+ border-top-right-radius: 1px;
+ border-top-left-radius: 1px;
+}
+
+ol.version-picker li:last-child a {
+ border-bottom-right-radius: 1px;
+ border-bottom-left-radius: 1px;
}
.line {
@@ -507,6 +562,9 @@ th > *:last-child, td > *:last-child {
#content {
font-size: 3.5em;
}
+ #gtoc {
+ font-size: 0.6em;
+ }
}
@media print {
diff --git a/doc/template.html b/doc/template.html
index 572197beff..d65b56ca5e 100644
--- a/doc/template.html
+++ b/doc/template.html
@@ -23,11 +23,21 @@
<header>
<h1>Node.js __VERSION__ Documentation</h1>
<div id="gtoc">
- <p>
- <a href="index.html" name="toc">Index</a> |
- <a href="all.html">View on single page</a> |
- <a href="__FILENAME__.json">View as JSON</a>
- </p>
+ <ul>
+ <li>
+ <a href="index.html" name="toc">Index</a> |
+ </li>
+ <li>
+ <a href="all.html">View on single page</a> |
+ </li>
+ <li>
+ <a href="__FILENAME__.json">View as JSON</a> |
+ </li>
+ <li class="version-picker">
+ <a href="#">View another version <span>&#x25bc;</span></a>
+ __ALTDOCS__
+ </li>
+ </ul>
</div>
<hr>
</header>
diff --git a/tools/doc/html.js b/tools/doc/html.js
index b0a3c13c69..c55772aa05 100644
--- a/tools/doc/html.js
+++ b/tools/doc/html.js
@@ -31,6 +31,7 @@ const typeParser = require('./type-parser.js');
module.exports = toHTML;
const STABILITY_TEXT_REG_EXP = /(.*:)\s*(\d)([\s\S]*)/;
+const DOC_CREATED_REG_EXP = /<!--\s*introduced_in\s*=\s*v([0-9]+)\.([0-9]+)\.([0-9]+)\s*-->/;
// customized heading without id attribute
const renderer = new marked.Renderer();
@@ -52,13 +53,17 @@ const gtocPath = path.resolve(path.join(
));
var gtocLoading = null;
var gtocData = null;
+var docCreated = null;
+var nodeVersion = null;
/**
* opts: input, filename, template, nodeVersion.
*/
function toHTML(opts, cb) {
const template = opts.template;
- const nodeVersion = opts.nodeVersion || process.version;
+
+ nodeVersion = opts.nodeVersion || process.version;
+ docCreated = opts.input.match(DOC_CREATED_REG_EXP);
if (gtocData) {
return onGtocLoaded();
@@ -157,6 +162,8 @@ function render(opts, cb) {
);
}
+ template = template.replace(/__ALTDOCS__/, altDocs(filename));
+
// content has to be the last thing we do with
// the lexed tokens, because it's destructive.
const content = marked.parser(lexed);
@@ -188,6 +195,50 @@ function replaceInText(text) {
return linkJsTypeDocs(linkManPages(text));
}
+function altDocs(filename) {
+ let html = '';
+
+ if (!docCreated) {
+ console.error(`Failed to add alternative version links to ${filename}`);
+ return html;
+ }
+
+ function lte(v) {
+ const ns = v.num.split('.');
+ if (docCreated[1] > +ns[0])
+ return false;
+ if (docCreated[1] < +ns[0])
+ return true;
+ return docCreated[2] <= +ns[1];
+ }
+
+ const versions = [
+ { num: '8.x' },
+ { num: '7.x' },
+ { num: '6.x', lts: true },
+ { num: '5.x' },
+ { num: '4.x', lts: true },
+ { num: '0.12.x' },
+ { num: '0.10.x' }
+ ];
+
+ const host = 'https://nodejs.org';
+ const href = (v) => `${host}/docs/latest-v${v.num}/api/${filename}.html`;
+
+ function li(v, i) {
+ let html = `<li><a href="${href(v)}">${v.num}`;
+
+ if (v.lts)
+ html += ' <b>LTS</b>';
+
+ return html + '</a></li>';
+ }
+
+ const lis = (vs) => vs.filter(lte).map(li).join('\n');
+
+ return `<ol class="version-picker">${lis(versions)}</ol>`;
+}
+
// handle general body-text replacements
// for example, link man page references to the actual page
function parseText(lexed) {