diff --git a/docs/ci-and-misc.md b/docs/ci-and-misc.md
index 97d5c839..8c330872 100644
--- a/docs/ci-and-misc.md
+++ b/docs/ci-and-misc.md
@@ -1,6 +1,12 @@
# CI and other odd pieces
+**Contents**
+[Continuous Integration systems](#continuous-integration-systems)
+[Other reporters](#other-reporters)
+[Low-level tools](#low-level-tools)
+[CMake](#cmake)
+
This page talks about how Catch integrates with Continuous Integration
Build Systems may refer to low-level tools, like CMake, or larger systems that run on servers, like Jenkins or TeamCity. This page will talk about both.
diff --git a/docs/command-line.md b/docs/command-line.md
index 94705ef3..fc63fe87 100644
--- a/docs/command-line.md
+++ b/docs/command-line.md
@@ -24,7 +24,7 @@
[Usage](#usage)
[Specify the section to run](#specify-the-section-to-run)
[Filenames as tags](#filenames-as-tags)
-[Override output colouring](#use-colour)
+[Override output colouring](#override-output-colouring)
Catch works quite nicely without any command line options at all - but for those times when you want greater control the following options are available.
Click one of the followings links to take you straight to that option - or scroll on to browse the available options.
diff --git a/docs/configuration.md b/docs/configuration.md
index 0bdb82a5..1b5df108 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -9,9 +9,12 @@
[stdout](#stdout)
[Fallback stringifier](#fallback-stringifier)
[Default reporter](#default-reporter)
+[C++11 toggles](#c-11-toggles)
+[C++17 toggles](#c-17-toggles)
[Other toggles](#other-toggles)
[Windows header clutter](#windows-header-clutter)
[Enabling stringification](#enabling-stringification)
+[Disabling exceptions](#disabling-exceptions)
Catch is designed to "just work" as much as possible. For most people the only configuration needed is telling Catch which source file should host all the implementation code (```CATCH_CONFIG_MAIN```).
diff --git a/docs/own-main.md b/docs/own-main.md
index fba6c608..6a9b1aad 100644
--- a/docs/own-main.md
+++ b/docs/own-main.md
@@ -1,6 +1,12 @@
# Supplying main() yourself
+**Contents**
+[Let Catch take full control of args and config](#let-catch-take-full-control-of-args-and-config)
+[Amending the config](#amending-the-config)
+[Adding your own command line options](#adding-your-own-command-line-options)
+[Version detection](#version-detection)
+
The easiest way to use Catch is to let it supply ```main()``` for you and handle configuring itself from the command line.
This is achieved by writing ```#define CATCH_CONFIG_MAIN``` before the ```#include "catch.hpp"``` in *exactly one* source file.
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 607ea073..5d82eeca 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -1,5 +1,21 @@
+# Release notes
+**Contents**
+[2.4.0](#240)
+[2.3.0](#230)
+[2.2.3](#223)
+[2.2.2](#222)
+[2.2.1](#221)
+[2.2.0](#220)
+[2.1.2](#212)
+[2.1.1](#211)
+[2.1.0](#210)
+[2.0.1](#201)
+[Older versions](#older-versions)
+[Even Older versions](#even-older-versions)
+
+
# 2.4.0
**This release brings two new experimental features, generator support
diff --git a/docs/tostring.md b/docs/tostring.md
index 00048bbb..2e3dc71c 100644
--- a/docs/tostring.md
+++ b/docs/tostring.md
@@ -1,6 +1,12 @@
# String conversions
+**Contents**
+[operator << overload for std::ostream](#operator-overload-for-std-ostream)
+[Catch::StringMaker specialisation](#catch-stringmaker-t-specialisation)
+[Catch::is_range specialisation](#catch-is_range-t-specialisation)
+[Exceptions](#exceptions)
+
Catch needs to be able to convert types you use in assertions and logging expressions into strings (for logging and reporting purposes).
Most built-in or std types are supported out of the box but there are two ways that you can tell Catch how to convert your own types (or other, third-party types) into strings.