diff --git a/doc/builders/special.xml b/doc/builders/special.xml
index 15fdba9a041..09115751d6a 100644
--- a/doc/builders/special.xml
+++ b/doc/builders/special.xml
@@ -6,5 +6,5 @@
This chapter describes several special builders.
-
+
diff --git a/doc/builders/special/mkshell.section.md b/doc/builders/special/mkshell.section.md
new file mode 100644
index 00000000000..1feb75cbd6f
--- /dev/null
+++ b/doc/builders/special/mkshell.section.md
@@ -0,0 +1,15 @@
+# pkgs.mkShell {#sec-pkgs-mkShell}
+
+`pkgs.mkShell` is a special kind of derivation that is only useful when using it combined with `nix-shell`. It will in fact fail to instantiate when invoked with `nix-build`.
+
+## Usage {#sec-pkgs-mkShell-usage}
+
+```nix
+{ pkgs ? import {} }:
+pkgs.mkShell {
+ # this will make all the build inputs from hello and gnutar
+ # available to the shell environment
+ inputsFrom = with pkgs; [ hello gnutar ];
+ buildInputs = [ pkgs.gnumake ];
+}
+```
diff --git a/doc/builders/special/mkshell.xml b/doc/builders/special/mkshell.xml
deleted file mode 100644
index cef65d06b88..00000000000
--- a/doc/builders/special/mkshell.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
- pkgs.mkShell
-
-
- pkgs.mkShell is a special kind of derivation that is only useful when using it combined with nix-shell. It will in fact fail to instantiate when invoked with nix-build.
-
-
-
- Usage
-
- {} }:
-pkgs.mkShell {
- # this will make all the build inputs from hello and gnutar
- # available to the shell environment
- inputsFrom = with pkgs; [ hello gnutar ];
- buildInputs = [ pkgs.gnumake ];
-}
-]]>
-
-