diff --git a/website/Gemfile.lock b/website/Gemfile.lock
index 4bb9b0d97..5842327a3 100644
--- a/website/Gemfile.lock
+++ b/website/Gemfile.lock
@@ -50,7 +50,7 @@ GEM
uber (~> 0.0.14)
http_parser.rb (0.6.0)
i18n (0.7.0)
- json (1.8.3.1)
+ json (2.2.0)
kramdown (1.17.0)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4)
diff --git a/website/source/api/nodes.html.md b/website/source/api/nodes.html.md
index 2f5173fe8..13ec28e98 100644
--- a/website/source/api/nodes.html.md
+++ b/website/source/api/nodes.html.md
@@ -10,7 +10,7 @@ description: |-
The `/node` endpoints are used to query for and interact with client nodes.
-### List Nodes
+## List Nodes
This endpoint lists all nodes registered with Nomad.
diff --git a/website/source/assets/javascripts/api-toc.js b/website/source/assets/javascripts/api-toc.js
new file mode 100644
index 000000000..0ece169bf
--- /dev/null
+++ b/website/source/assets/javascripts/api-toc.js
@@ -0,0 +1,47 @@
+// This is adapted from Terraform’s web site:
+// https://github.com/hashicorp/terraform-website/blob/b218a3a9aac14462065e2035e8281d38e784af47/content/source/assets/javascripts/application.js
+
+document.addEventListener('turbolinks:load', function() {
+ "use strict";
+
+ // On docs/content pages, add a hierarchical quick nav menu if there are
+ // more than two H2 headers.
+ var headers = $('#inner').find('h2');
+ if (headers.length > 2 && $("div#inner-quicknav").length === 0) {
+ // Build the quick-nav HTML:
+ $("#inner h1").first().after(
+ '