diff --git a/build/Doxyfile b/build/Doxyfile
index 59f5f60..a050304 100644
--- a/build/Doxyfile
+++ b/build/Doxyfile
@@ -766,7 +766,15 @@ WARN_LOGFILE =
INPUT = ./include/ \
./readme.md \
- ./doc/
+ ./doc/features.md \
+ ./doc/tutorial.md \
+ ./doc/stream.md \
+ ./doc/encoding.md \
+ ./doc/dom.md \
+ ./doc/sax.md \
+ ./doc/performance.md \
+ ./doc/internals.md \
+ ./doc/faq.md
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1027,7 +1035,7 @@ CLANG_OPTIONS =
# classes, structs, unions or interfaces.
# The default value is: YES.
-ALPHABETICAL_INDEX = YES
+ALPHABETICAL_INDEX = BI
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
@@ -1086,7 +1094,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_HEADER =
+HTML_HEADER = ./doc/misc/header.html
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
@@ -1096,7 +1104,7 @@ HTML_HEADER =
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_FOOTER =
+HTML_FOOTER = ./doc/misc/footer.html
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
@@ -1387,7 +1395,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-DISABLE_INDEX = NO
+DISABLE_INDEX = YES
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information. If the tag
@@ -1404,7 +1412,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-GENERATE_TREEVIEW = NO
+GENERATE_TREEVIEW = YES
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
diff --git a/doc/dom.md b/doc/dom.md
index 9cbc13b..1195b7a 100644
--- a/doc/dom.md
+++ b/doc/dom.md
@@ -1,4 +1,4 @@
-# RapidJSON DOM
+# DOM
Document Object Model(DOM) is a in-memory representation of JSON for query and manipulation. The basic usage of DOM is described in [Tutorial](tutorial.md). This section will describe some details and more advanced usages.
diff --git a/doc/encoding.md b/doc/encoding.md
index 8e6af13..0f04787 100644
--- a/doc/encoding.md
+++ b/doc/encoding.md
@@ -1,4 +1,4 @@
-# RapidJSON Encoding
+# Encoding
## Unicode
diff --git a/doc/faq.md b/doc/faq.md
index 8476472..46eb967 100644
--- a/doc/faq.md
+++ b/doc/faq.md
@@ -1,4 +1,4 @@
-# RapidJSON FAQ
+# FAQ
## General
diff --git a/doc/features.md b/doc/features.md
index 3cc6309..e73df88 100644
--- a/doc/features.md
+++ b/doc/features.md
@@ -1,4 +1,4 @@
-# RapidJSON Features
+# Features
## General
diff --git a/doc/internals.md b/doc/internals.md
index 2573369..356bbb9 100644
--- a/doc/internals.md
+++ b/doc/internals.md
@@ -1,4 +1,4 @@
-# RapidJSON Internals
+# Internals
This section records some design and implementation details.
diff --git a/doc/misc/DoxygenLayout.xml b/doc/misc/DoxygenLayout.xml
new file mode 100644
index 0000000..b7c9586
--- /dev/null
+++ b/doc/misc/DoxygenLayout.xml
@@ -0,0 +1,194 @@
+
$searchbox |