diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
deleted file mode 100644
--- a/CHANGELOG.markdown
+++ /dev/null
@@ -1,4 +0,0 @@
-# Change log
-
-Autoexporter follows the [Package Versioning Policy](https://pvp.haskell.org).
-You can find release notes [on GitHub](https://github.com/tfausak/autoexporter/releases).
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,4 @@
+# Change log
+
+Autoexporter follows the [Package Versioning Policy](https://pvp.haskell.org).
+You can find release notes [on GitHub](https://github.com/tfausak/autoexporter/releases).
diff --git a/README.markdown b/README.markdown
deleted file mode 100644
--- a/README.markdown
+++ /dev/null
@@ -1,65 +0,0 @@
-# Autoexporter
-
-[![CI](https://github.com/tfausak/autoexporter/actions/workflows/ci.yml/badge.svg)](https://github.com/tfausak/autoexporter/actions/workflows/ci.yml)
-[![Hackage](https://badgen.net/hackage/v/autoexporter)](https://hackage.haskell.org/package/autoexporter)
-
-Autoexporter automatically re-exports Haskell modules.
-
-Let's say you have a module `M` that just exports some other modules. It might
-look like this:
-
-``` haskell
-module M
-  ( module M.A
-  , module M.B
-  ) where
-
-import M.A
-import M.B
-```
-
-This code is error-prone. If you add a new module, say `M.C`, you have to
-remember to come back to this file and re-export it. And this code is tedious
-to write. You have to list each module twice. You can do a little better, but
-not much.
-
-``` haskell
-module M (module X) where
-import M.A as X
-import M.B as X
-```
-
-Now you don't have to write every module twice, but you still have to remember
-to re-export everything. And the generated documentation for this module
-doesn't include anything about the exported modules.
-
-Autoexporter handles this for you. Instead of either of the above approaches,
-simply drop this into the `M` module:
-
-``` haskell
-{-# OPTIONS_GHC -F -pgmF autoexporter #-}
-```
-
-That will generate code that looks like this:
-
-``` haskell
-module M (
-  module M.A,
-  module M.B,
-) where
-import M.A
-import M.B
-```
-
-Autoexporter will generally behave as you'd expect, but there are a couple
-things to look out for:
-
-- You cannot selectively include or exclude any modules.
-
-- By default, only immediate children will be re-exported. If you use this in
-  some module `M`, it won't pull in `M.A.B`. If you need deep re-exporting,
-  please pass `--deep` to Autoexporter like this:
-
-  ```haskell
-  {-# OPTIONS_GHC -F -pgmF autoexporter -optF --deep #-}
-  ```
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,65 @@
+# Autoexporter
+
+[![CI](https://github.com/tfausak/autoexporter/actions/workflows/ci.yml/badge.svg)](https://github.com/tfausak/autoexporter/actions/workflows/ci.yml)
+[![Hackage](https://badgen.net/hackage/v/autoexporter)](https://hackage.haskell.org/package/autoexporter)
+
+Autoexporter automatically re-exports Haskell modules.
+
+Let's say you have a module `M` that just exports some other modules. It might
+look like this:
+
+``` haskell
+module M
+  ( module M.A
+  , module M.B
+  ) where
+
+import M.A
+import M.B
+```
+
+This code is error-prone. If you add a new module, say `M.C`, you have to
+remember to come back to this file and re-export it. And this code is tedious
+to write. You have to list each module twice. You can do a little better, but
+not much.
+
+``` haskell
+module M (module X) where
+import M.A as X
+import M.B as X
+```
+
+Now you don't have to write every module twice, but you still have to remember
+to re-export everything. And the generated documentation for this module
+doesn't include anything about the exported modules.
+
+Autoexporter handles this for you. Instead of either of the above approaches,
+simply drop this into the `M` module:
+
+``` haskell
+{-# OPTIONS_GHC -F -pgmF autoexporter #-}
+```
+
+That will generate code that looks like this:
+
+``` haskell
+module M (
+  module M.A,
+  module M.B,
+) where
+import M.A
+import M.B
+```
+
+Autoexporter will generally behave as you'd expect, but there are a couple
+things to look out for:
+
+- You cannot selectively include or exclude any modules.
+
+- By default, only immediate children will be re-exported. If you use this in
+  some module `M`, it won't pull in `M.A.B`. If you need deep re-exporting,
+  please pass `--deep` to Autoexporter like this:
+
+  ```haskell
+  {-# OPTIONS_GHC -F -pgmF autoexporter -optF --deep #-}
+  ```
diff --git a/autoexporter.cabal b/autoexporter.cabal
--- a/autoexporter.cabal
+++ b/autoexporter.cabal
@@ -1,13 +1,13 @@
 cabal-version: 2.2
 name: autoexporter
-version: 2.0.0.11
+version: 2.0.0.12
 synopsis: Automatically re-export modules.
 description: Autoexporter automatically re-exports modules.
 build-type: Simple
 category: Utility
-extra-source-files:
-  CHANGELOG.markdown
-  README.markdown
+extra-doc-files:
+  CHANGELOG.md
+  README.md
 
 license-file: LICENSE.txt
 license: MIT
