diff --git a/.markdownlint.yaml b/.markdownlint.yaml
deleted file mode 100644
index 8ece4c7613e9e19b4172126332e5900243f323b4..0000000000000000000000000000000000000000
--- a/.markdownlint.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-MD013: false
-MD029: false
diff --git a/.md_style.rb b/.md_style.rb
new file mode 100644
index 0000000000000000000000000000000000000000..73adf8ae47ec942e426cdaf1664661bfdc9562c8
--- /dev/null
+++ b/.md_style.rb
@@ -0,0 +1,4 @@
+all
+exclude_rule 'MD013'
+exclude_rule 'MD029'
+rule 'MD007', :indent => 2
diff --git a/.mdlrc b/.mdlrc
new file mode 100644
index 0000000000000000000000000000000000000000..8ca55a8cee51d24e4330edad412bb5116d525ac4
--- /dev/null
+++ b/.mdlrc
@@ -0,0 +1 @@
+style "#{File.dirname(__FILE__)}/.md_style.rb"
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 5b2f78f7aef40bd8e59e8aefa23ca5bb37e933e5..d79a716ad405ea06a5294e7fccd5587330f443df 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -24,8 +24,7 @@ repos:
     rev: v0.11.0
     hooks:
       - id: markdownlint
-        args: [-r, "~MD013,~MD029"]
-        exclude: "^.git"
+        exclude: "^.github|(^docs/_sidebar\\.md$)"
 
   - repo: https://github.com/shellcheck-py/shellcheck-py
     rev: v0.10.0.1
diff --git a/docs/cloud_providers/openstack.md b/docs/cloud_providers/openstack.md
index 6f53da53444bbebdc864a393cf8ab1637a357a2a..1506be370c470f98b8d825f970a35de077b2d9c5 100644
--- a/docs/cloud_providers/openstack.md
+++ b/docs/cloud_providers/openstack.md
@@ -1,4 +1,3 @@
-
 # OpenStack
 
 ## Known compatible public clouds
diff --git a/docs/operations/recover-control-plane.md b/docs/operations/recover-control-plane.md
index c54808b41cb9f0896f27fb6b0fe62edec4dd2372..d54aa13f58a58de473516267328c640a40b2416c 100644
--- a/docs/operations/recover-control-plane.md
+++ b/docs/operations/recover-control-plane.md
@@ -1,4 +1,3 @@
-
 # Recovering the control plane
 
 To recover from broken nodes in the control plane use the "recover\-control\-plane.yml" playbook.