diff --git a/.gitignore b/.gitignore
index ce9deba113050d16e7349a9fab3520f84b9d61b7..9ebfe1160fb9a87907de4a783e2f9869117051d5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,7 @@ config.properties
 libs
 .factorypath
 .apt_generated*
+
+# Node
+node_modules
+package-lock.json
diff --git a/.markdownlint.yml b/.markdownlint.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a2fbcaa7afb759390347b5069e8f571df1b3dd1f
--- /dev/null
+++ b/.markdownlint.yml
@@ -0,0 +1,16 @@
+##
+# Rules for markdownlint.
+#
+# See https://github.com/DavidAnson/markdownlint
+##
+
+default: true
+
+# MD013/line-length - Line length
+MD013:
+  # Number of characters
+  line_length: 100
+  # Number of characters for headings
+  heading_line_length: 100
+  # Number of characters for code blocks
+  code_block_line_length: 100
diff --git a/.markdownlintignore b/.markdownlintignore
new file mode 100644
index 0000000000000000000000000000000000000000..e8239e8c00a62aba98bc05b4b469da20e3a8663c
--- /dev/null
+++ b/.markdownlintignore
@@ -0,0 +1,6 @@
+.settings
+bin
+build
+tmp
+libs
+node_modules
diff --git a/build.gradle b/build.gradle
index a57fc92549433862ad33e9eab827bbeb286726a0..28452ba5889f40e830e88ababb953ddf6752a477 100644
--- a/build.gradle
+++ b/build.gradle
@@ -30,8 +30,9 @@
 plugins {
   id "application"
   id "com.diffplug.gradle.spotless" version "${spotlessVersion}"
-  id "com.github.spotbugs" version "${spotbugsVersion}"
   id "com.github.johnrengelman.shadow" version "${shadowVersion}"
+  id "com.github.node-gradle.node" version "${nodeVersion}"
+  id "com.github.spotbugs" version "${spotbugsVersion}"
   id "com.star-zero.gradle.githook" version "${githooksVersion}"
   id "eclipse-wtp"
   id "jacoco"
@@ -109,7 +110,8 @@ gradle.afterProject {
     }
     into nshmpLib
   }
-  apply from: "${nshmpLibGradleDir}/spotbugs.gradle"
   apply from: "${nshmpLibGradleDir}/git-hooks.gradle"
+  apply from: "${nshmpLibGradleDir}/markdownlint.gradle"
+  apply from: "${nshmpLibGradleDir}/spotbugs.gradle"
   apply from: "${nshmpLibGradleDir}/spotless.gradle"
 }
diff --git a/gradle.properties b/gradle.properties
index 2c46fd1c7c40a2f87f351edd12aa44f476c81213..36b5d6d51b45be2da670ce2c12b9834ca87228f2 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -9,7 +9,8 @@ junitVersion = 5.5.2
 logbackVersion = 1.2.3
 mnOpenAPIVersion = 1.4.0
 mnVersion = 1.3.2
-nshmpLibVersion = 0.2.10
+nodeVersion = 3.0.1
+nshmpLibVersion = 0.2.11
 shadowVersion = 5.2.0
 spotbugsVersion = 4.2.4
 spotlessVersion = 4.1.0