diff --git a/README.md b/README.md
index ae2cfd860bb404f46c75f2aa1d7ecd729d42cab8..d4f6ab9ec8a2137e4e09e352b3c726eecf0cc942 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
-[![Azure Status]][Azure] [![Cirrus CI Status]][Cirrus CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License]
+# libc - Raw FFI bindings to platforms' system libraries
 
-libc - Raw FFI bindings to platforms' system libraries
-====
+[![Azure Status]][Azure] [![Cirrus CI Status]][Cirrus CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License]
 
 `libc` provides all of the definitions necessary to easily interoperate with C
 code (or "C-like" code) on each of the platforms that Rust supports. This
diff --git a/ci/dox.sh b/ci/dox.sh
index 271b54b4fab79cc35407f02b6dc97c89c338140f..88f75130c5caf91d89ce9028db7e599302558d95 100644
--- a/ci/dox.sh
+++ b/ci/dox.sh
@@ -52,9 +52,9 @@ while read -r target; do
 
     # If cargo doc fails, then try xargo:
     if ! cargo doc --target "${target}" \
-             --no-default-features  --features extra_traits ; then
+        --no-default-features --features extra_traits ; then
         cargo xdoc --target "${target}" \
-              --no-default-features  --features extra_traits
+        --no-default-features --features extra_traits
     fi
 
     cp -r "target/${target}/doc" "${TARGET_DOC_DIR}/${target}"
@@ -70,5 +70,7 @@ set +x
 { head -n "$((line-1))" $README; cat $PLATFORM_SUPPORT; tail -n "+$((line+1))" $README; } > $TARGET_DOC_DIR/$README
 set -x
 
+RUSTDOCFLAGS="--enable-index-page --index-page=${TARGET_DOC_DIR}/${README} -Zunstable-options" cargo doc
+
 # Copy the licenses
 cp LICENSE-* $TARGET_DOC_DIR/