diff --git a/doc/api/addons.md b/doc/api/addons.md
index f09b2e7ee60f3f..bd175103330da7 100644
--- a/doc/api/addons.md
+++ b/doc/api/addons.md
@@ -1,5 +1,7 @@
# C++ Addons
+
+
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 5126c334e16599..6661459563f7ac 100644
--- a/doc/api/assert.md
+++ b/doc/api/assert.md
@@ -1,5 +1,7 @@
# Assert
+
+
> 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 0301eadd3bebdc..363b10bc664b9f 100644
--- a/doc/api/buffer.md
+++ b/doc/api/buffer.md
@@ -1,5 +1,7 @@
# Buffer
+
+
> 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 dde0ec857492c0..f4a843fc0966ad 100755
--- a/doc/api/child_process.md
+++ b/doc/api/child_process.md
@@ -1,5 +1,7 @@
# Child Process
+
+
> 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 beceebec7792ff..752df72da8ae32 100644
--- a/doc/api/cli.md
+++ b/doc/api/cli.md
@@ -1,5 +1,6 @@
# Command Line Options
+
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 95c97865016b26..a3146e0f608ab3 100644
--- a/doc/api/cluster.md
+++ b/doc/api/cluster.md
@@ -1,5 +1,7 @@
# Cluster
+
+
> 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 ee130d7b9714b7..0bd72cd7769626 100644
--- a/doc/api/console.md
+++ b/doc/api/console.md
@@ -1,5 +1,7 @@
# Console
+
+
> 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 05e024508671f6..bf5e7169c142af 100644
--- a/doc/api/crypto.md
+++ b/doc/api/crypto.md
@@ -1,5 +1,7 @@
# Crypto
+
+
> 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 1a2070d3f451b3..e16c83122e2b0b 100644
--- a/doc/api/debugger.md
+++ b/doc/api/debugger.md
@@ -1,5 +1,7 @@
# Debugger
+
+
> Stability: 2 - Stable
diff --git a/doc/api/dgram.md b/doc/api/dgram.md
index c3fcfb0528ffa4..3e77827a5e4b65 100644
--- a/doc/api/dgram.md
+++ b/doc/api/dgram.md
@@ -1,5 +1,7 @@
# UDP / Datagram Sockets
+
+
> Stability: 2 - Stable
diff --git a/doc/api/dns.md b/doc/api/dns.md
index 4248bdf43a1fbd..5e9fc97bbc48c2 100644
--- a/doc/api/dns.md
+++ b/doc/api/dns.md
@@ -1,5 +1,7 @@
# DNS
+
+
> 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 a12f00e1d63bb8..802bf3613f9b55 100644
--- a/doc/api/documentation.md
+++ b/doc/api/documentation.md
@@ -1,5 +1,6 @@
# About this Documentation
+
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 102ac8ec7c354d..a4a31d4fecd1f2 100644
--- a/doc/api/domain.md
+++ b/doc/api/domain.md
@@ -7,6 +7,8 @@ changes:
the first promise of a chain was created.
-->
+
+
> 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 7b29ab6ddbaae9..3d2761b54cb7b0 100644
--- a/doc/api/errors.md
+++ b/doc/api/errors.md
@@ -1,5 +1,6 @@
# Errors
+
Applications running in Node.js will generally experience four categories of
diff --git a/doc/api/events.md b/doc/api/events.md
index ff6fbe9bb9affb..99c2e1514b43a3 100644
--- a/doc/api/events.md
+++ b/doc/api/events.md
@@ -1,5 +1,7 @@
# Events
+
+
> Stability: 2 - Stable
diff --git a/doc/api/fs.md b/doc/api/fs.md
index 929cf6941ebf4c..a83d0422277c94 100644
--- a/doc/api/fs.md
+++ b/doc/api/fs.md
@@ -1,5 +1,7 @@
# File System
+
+
> Stability: 2 - Stable
diff --git a/doc/api/globals.md b/doc/api/globals.md
index f3a2fc63779b89..a2e5b5fc898686 100644
--- a/doc/api/globals.md
+++ b/doc/api/globals.md
@@ -1,5 +1,6 @@
# Global Objects
+
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 8558900d8815e3..9c1fbb3d6bece0 100644
--- a/doc/api/http.md
+++ b/doc/api/http.md
@@ -1,5 +1,7 @@
# HTTP
+
+
> 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 f6c56ef8ed7efb..3ff97bf446b667 100644
--- a/doc/api/https.md
+++ b/doc/api/https.md
@@ -1,5 +1,7 @@
# HTTPS
+
+
> 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 13e3731cae749d..afddbc14c4f387 100644
--- a/doc/api/modules.md
+++ b/doc/api/modules.md
@@ -1,5 +1,7 @@
# Modules
+
+
> Stability: 2 - Stable
diff --git a/doc/api/net.md b/doc/api/net.md
index 686ee300ccf527..36280c06493350 100644
--- a/doc/api/net.md
+++ b/doc/api/net.md
@@ -1,5 +1,7 @@
# Net
+
+
> 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 bb4ffdc3766c01..28eff6a13f0b60 100644
--- a/doc/api/os.md
+++ b/doc/api/os.md
@@ -1,5 +1,7 @@
# OS
+
+
> 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 f951a4ab8a5b1a..f2015db47048d7 100644
--- a/doc/api/path.md
+++ b/doc/api/path.md
@@ -1,5 +1,7 @@
# Path
+
+
> 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 a6da470e782ed7..e24bf19d9d2f44 100644
--- a/doc/api/process.md
+++ b/doc/api/process.md
@@ -1,5 +1,6 @@
# Process
+
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 b88a89832641ea..03ee3d62ebfd67 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.
-->
+
+
> 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 c6b89235c14d43..5bd4f1cce192a7 100644
--- a/doc/api/querystring.md
+++ b/doc/api/querystring.md
@@ -1,5 +1,7 @@
# Query String
+
+
> Stability: 2 - Stable
diff --git a/doc/api/readline.md b/doc/api/readline.md
index 085ac885401c89..603a5ec1888394 100644
--- a/doc/api/readline.md
+++ b/doc/api/readline.md
@@ -1,5 +1,7 @@
# Readline
+
+
> 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 618744f6e2dc28..d61e9be57c1375 100644
--- a/doc/api/repl.md
+++ b/doc/api/repl.md
@@ -1,5 +1,7 @@
# REPL
+
+
> 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 23b8aa55e1356e..efa69532ef81f8 100644
--- a/doc/api/stream.md
+++ b/doc/api/stream.md
@@ -1,5 +1,7 @@
# Stream
+
+
> 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 5757ba6e2b3440..cde81e6ae5ec2b 100644
--- a/doc/api/string_decoder.md
+++ b/doc/api/string_decoder.md
@@ -1,5 +1,7 @@
# String Decoder
+
+
> 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 e8fa77eee47e9e..3d680c33b554ba 100644
--- a/doc/api/synopsis.md
+++ b/doc/api/synopsis.md
@@ -1,5 +1,6 @@
# Usage
+
`node [options] [v8 options] [script.js | -e "script" | - ] [arguments]`
diff --git a/doc/api/timers.md b/doc/api/timers.md
index 8abcdcb5cb6890..09502dee1003c8 100644
--- a/doc/api/timers.md
+++ b/doc/api/timers.md
@@ -1,5 +1,7 @@
# Timers
+
+
> 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 5df8c6af5e6b79..e18bbb62b1908f 100644
--- a/doc/api/tls.md
+++ b/doc/api/tls.md
@@ -1,5 +1,7 @@
# TLS (SSL)
+
+
> 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 963de892cbc0fd..2950eb6db1a396 100644
--- a/doc/api/tty.md
+++ b/doc/api/tty.md
@@ -1,5 +1,7 @@
# TTY
+
+
> 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 cb2a3965f5eee4..632eef82e4435e 100644
--- a/doc/api/url.md
+++ b/doc/api/url.md
@@ -1,5 +1,7 @@
# URL
+
+
> 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 076fbc479dc695..ce56c50104dbc4 100644
--- a/doc/api/util.md
+++ b/doc/api/util.md
@@ -1,5 +1,7 @@
# Util
+
+
> 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 3a3e5f664a14e8..634d3199a1a012 100644
--- a/doc/api/v8.md
+++ b/doc/api/v8.md
@@ -1,5 +1,7 @@
# V8
+
+
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 42046e01191b51..dff10b17cf20fd 100644
--- a/doc/api/vm.md
+++ b/doc/api/vm.md
@@ -1,5 +1,7 @@
# VM (Executing JavaScript)
+
+
> Stability: 2 - Stable
diff --git a/doc/api/zlib.md b/doc/api/zlib.md
index 0f5897994919b1..ed94896e97052d 100644
--- a/doc/api/zlib.md
+++ b/doc/api/zlib.md
@@ -1,5 +1,7 @@
# Zlib
+
+
> 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 3761be4031e178..6d764fd88916c7 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 572197beff44fe..d65b56ca5e80ad 100644
--- a/doc/template.html
+++ b/doc/template.html
@@ -23,11 +23,21 @@
- Index |
- View on single page |
- View as JSON
- Node.js __VERSION__ Documentation
+