diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
index 0000000..d2b1aaa
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,106 @@
+# IDE Plugins
+
+## Emacs
+
+The `Emacs` plugin is maintained separately. Installation directions can be
+found here: https://github.com/paetzke/py-yapf.el
+
+
+## Vim
+
+The `vim` plugin allows you to reformat a range of code. Copy `plugin` and
+`autoload` directories into your `~/.vim` or use `:packadd` in Vim 8. Or use
+a plugin manager like Plug or Vundle:
+
+```vim
+" Plug
+Plug 'google/yapf', { 'rtp': 'plugins/vim', 'for': 'python' }
+
+" Vundle
+Plugin 'google/yapf', { 'rtp': 'plugins/vim' }
+```
+
+You can add key bindings in the `.vimrc` file:
+
+```vim
+map <C-Y> :call yapf#YAPF()<cr>
+imap <C-Y> <c-o>:call yapf#YAPF()<cr>
+```
+
+Alternatively, you can call the command `YAPF`. If you omit the range, it will
+reformat the whole buffer.
+
+example:
+
+```vim
+:YAPF       " formats whole buffer
+:'<,'>YAPF  " formats lines selected in visual mode
+```
+
+
+## Sublime Text
+
+The `Sublime Text` plugin is also maintained separately. It is compatible with
+both Sublime Text 2 and 3.
+
+The plugin can be easily installed by using *Sublime Package Control*. Check
+the project page of the plugin for more information: https://github.com/jason-kane/PyYapf
+
+
+## git Pre-Commit Hook
+
+The `git` pre-commit hook automatically formats your Python files before they
+are committed to your local repository. Any changes `yapf` makes to the files
+will stay unstaged so that you can diff them manually.
+
+To install, simply download the raw file and copy it into your git hooks
+directory:
+
+```bash
+# From the root of your git project.
+$ curl -o pre-commit.sh https://raw.githubusercontent.com/google/yapf/main/plugins/pre-commit.sh
+$ chmod a+x pre-commit.sh
+$ mv pre-commit.sh .git/hooks/pre-commit
+```
+
+
+## Textmate 2
+
+Plugin for `Textmate 2` requires `yapf` Python package installed on your
+system:
+
+```bash
+$ pip install yapf
+```
+
+Also, you will need to activate `Python` bundle from `Preferences > Bundles`.
+
+Finally, create a `~/Library/Application Support/TextMate/Bundles/Python.tmbundle/Commands/YAPF.tmCommand`
+file with the following content:
+
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>beforeRunningCommand</key>
+  <string>saveActiveFile</string>
+  <key>command</key>
+  <string>#!/bin/bash
+
+TPY=${TM_PYTHON:-python}
+
+"$TPY" "/usr/local/bin/yapf" "$TM_FILEPATH"</string>
+  <key>input</key>
+  <string>document</string>
+  <key>name</key>
+  <string>YAPF</string>
+  <key>scope</key>
+  <string>source.python</string>
+  <key>uuid</key>
+  <string>297D5A82-2616-4950-9905-BD2D1C94D2D4</string>
+</dict>
+</plist>
+```
+
+You will see a new menu item `Bundles > Python > YAPF`.
diff --git a/plugins/README.rst b/plugins/README.rst
deleted file mode 100644
index b87bb2d..0000000
--- a/plugins/README.rst
+++ /dev/null
@@ -1,115 +0,0 @@
-===========
-IDE Plugins
-===========
-
-Emacs
-=====
-
-The ``Emacs`` plugin is maintained separately. Installation directions can be
-found here: https://github.com/paetzke/py-yapf.el
-
-VIM
-===
-
-The ``vim`` plugin allows you to reformat a range of code. Copy ``plugin`` and
-``autoload`` directories into your ~/.vim or use ``:packadd`` in Vim 8. Or use
-a plugin manager like Plug or Vundle:
-
-.. code-block:: vim
-
-     " Plug
-     Plug 'google/yapf', { 'rtp': 'plugins/vim', 'for': 'python' }
-
-     " Vundle
-     Plugin 'google/yapf', { 'rtp': 'plugins/vim' }
-
-
-You can add key bindings in the ``.vimrc`` file:
-
-.. code-block:: vim
-
-    map <C-Y> :call yapf#YAPF()<cr>
-    imap <C-Y> <c-o>:call yapf#YAPF()<cr>
-
-Alternatively, you can call the command ``YAPF``. If you omit the range, it
-will reformat the whole buffer.
-
-example:
-
-.. code-block:: vim
-
-    :YAPF       " formats whole buffer
-    :'<,'>YAPF  " formats lines selected in visual mode
-
-Sublime Text
-============
-
-The ``Sublime Text`` plugin is also maintained separately. It is compatible
-with both Sublime Text 2 and 3.
-
-The plugin can be easily installed by using *Sublime Package Control*. Check
-the project page of the plugin for more information:
-https://github.com/jason-kane/PyYapf
-
-===================
-git Pre-Commit Hook
-===================
-
-The ``git`` pre-commit hook automatically formats your Python files before they
-are committed to your local repository. Any changes ``yapf`` makes to the files
-will stay unstaged so that you can diff them manually.
-
-To install, simply download the raw file and copy it into your git hooks
-directory:
-
-.. code-block:: bash
-
-    # From the root of your git project.
-    curl -o pre-commit.sh https://raw.githubusercontent.com/google/yapf/main/plugins/pre-commit.sh
-    chmod a+x pre-commit.sh
-    mv pre-commit.sh .git/hooks/pre-commit
-
-==========
-Textmate 2
-==========
-
-Plugin for ``Textmate 2`` requires ``yapf`` Python package installed on your
-system:
-
-.. code-block:: shell
-
-    pip install yapf
-
-Also, you will need to activate ``Python`` bundle from ``Preferences >>
-Bundles``.
-
-Finally, create a ``~/Library/Application
-Support/TextMate/Bundles/Python.tmbundle/Commands/YAPF.tmCommand`` file with
-the following content:
-
-.. code-block:: xml
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-    <plist version="1.0">
-    <dict>
-      <key>beforeRunningCommand</key>
-      <string>saveActiveFile</string>
-      <key>command</key>
-      <string>#!/bin/bash
-
-    TPY=${TM_PYTHON:-python}
-
-    "$TPY" "/usr/local/bin/yapf" "$TM_FILEPATH"</string>
-      <key>input</key>
-      <string>document</string>
-      <key>name</key>
-      <string>YAPF</string>
-      <key>scope</key>
-      <string>source.python</string>
-      <key>uuid</key>
-      <string>297D5A82-2616-4950-9905-BD2D1C94D2D4</string>
-    </dict>
-    </plist>
-
-You will see a new menu item ``Bundles > Python > YAPF``.
