diff --git a/docs/de-de/helpers.md b/docs/de-de/helpers.md
index 8cfe310c1..dd808044e 100644
--- a/docs/de-de/helpers.md
+++ b/docs/de-de/helpers.md
@@ -56,3 +56,23 @@ You will get `link`html. Do not worry, you can still set ti
[link](/demo ":target=_blank")
[link](/demo2 ":target=_self")
```
+
+
+## Github Task Lists
+
+```md
+
+* [ ] foo
+ * bar
+ * [x] baz
+ * [] bam
+ * [ ] bim
+ * [ ] lim
+```
+
+* [ ] foo
+ * bar
+ * [x] baz
+ * [] bam
+ * [ ] bim
+ * [ ] lim
diff --git a/docs/helpers.md b/docs/helpers.md
index ae6db8e34..575cd0db8 100644
--- a/docs/helpers.md
+++ b/docs/helpers.md
@@ -62,3 +62,23 @@ You will get `link`html. Do not worry, you can still set ti
```md
[link](/demo ":disabled")
```
+
+## Github Task Lists
+
+```md
+
+* [ ] foo
+ * bar
+ * [x] baz
+ * [] bam
+ * [ ] bim
+ * [ ] lim
+```
+
+* [ ] foo
+ * bar
+ * [x] baz
+ * [] bam
+ * [ ] bim
+ * [ ] lim
+
diff --git a/docs/zh-cn/helpers.md b/docs/zh-cn/helpers.md
index eec202670..26d266118 100644
--- a/docs/zh-cn/helpers.md
+++ b/docs/zh-cn/helpers.md
@@ -56,3 +56,23 @@ You will get `link`html. Do not worry, you can still set ti
[link](/demo ":target=_blank")
[link](/demo2 ":target=_self")
```
+
+
+## Github Task Lists
+
+```md
+
+* [ ] foo
+ * bar
+ * [x] baz
+ * [] bam
+ * [ ] bim
+ * [ ] lim
+```
+
+* [ ] foo
+ * bar
+ * [x] baz
+ * [] bam
+ * [ ] bim
+ * [ ] lim
diff --git a/src/core/render/compiler.js b/src/core/render/compiler.js
index 6bc68b2ea..914250534 100644
--- a/src/core/render/compiler.js
+++ b/src/core/render/compiler.js
@@ -175,6 +175,15 @@ export class Compiler {
return ``
}
+ const CHECKED_RE = /^\[([ x])\] +/
+ origin.listitem = renderer.listitem = function (text) {
+ const checked = CHECKED_RE.exec(text)
+ if (checked) {
+ text = text.replace(CHECKED_RE, ``)
+ }
+ return `