diff --git a/docs/de-de/helpers.md b/docs/de-de/helpers.md
index 8cfe310c..dd808044 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 ae6db8e3..575cd0db 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 eec20267..26d26611 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 6bc68b2e..91425053 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 `