diff --git a/docs/document-v2/README.md b/docs/document-v2/README.md
new file mode 100644
index 000000000..c1da8c61a
--- /dev/null
+++ b/docs/document-v2/README.md
@@ -0,0 +1,441 @@
+
+
+**Docup** is a single JavaScript file that fetches Markdown file and renders it as a beautiful one-page documentation.
+
+Docup is built with Preact, the entire bundle (with CSS) is just 30kB minified and gzipped.
+
+
+
+## Quick Start
+
+Create an HTML file: `index.html` which will be be homepage of your documentation website:
+
+```html
+
+
+
+
+
+
+ My Awesome Doc
+
+
+
+
+
+
+
+
+
+
+```
+
+Then populate a `README.md` file to the same directory where `index.html` is located.
+
+```md
+## Introduction
+
+How about this.
+
+## Advanced
+
+How about that.
+```
+
+Finally serve this directory as a static website:
+
+- **node.js**: `npm i -g static-server && static-server .`
+- **deno**: `deno install --allow-net --allow-read https://deno.land/std/http/file_server.ts && file_server .`
+- **python**: `python -m SimpleHTTPServer`
+- ...etc, you can use any static file server, for real.
+
+### How Files Are Resolved
+
+If current `location.pathname` is `/`, i.e. the homepage, it fetches `/README.md`.
+
+If current `location.pathname` is `/docs/`, it fetches `/docs/README.md`.
+
+If current `location.pathname` is `/docs/en`, it fetches `/docs/en.md`.
+
+Basically if the pathname ends with a slash, we treat it as a directory and try to load the `README.md` file under that path, you can also use [indexFile](#indexfile) option to change `README.md` to other file if you want. If the pathname does not end with slash, we would fetch `pathname + '.md'`.
+
+You can also use [root](#root) option to set the origin of the files, for example if you want to load files from other domain, you can set `root: 'https://sub.domain.com/data'`.
+
+## Guide
+
+### Site Title
+
+We use the value of `document.title` if it's not `undefined`, you can also set a title via options:
+
+```js
+docup.init({
+ title: 'My Website',
+})
+```
+
+### Markdown Features
+
+We use the blazing fast [marked](https://marked.js.org) to parse Markdown, all [GitHub Flavored Markdown](https://github.github.com/gfm/) features are supported.
+
+### Message Blocks
+
+To highlight some messages in your documentation, use the following format to write a `blockquote`:
+
+```md
+> [TYPE]: This is a very dangerous action!
+```
+
+Where `[TYPE]` can be:
+
+- `Alert`
+- `Warning`
+- `Info`
+- `Success`
+- `Note`
+
+And they look like:
+
+> **Alert**: This is an alert!
+
+> **Warning**: This is a warning!
+
+> **Info**: This is a info!
+
+> **Success**: This is a success!
+
+> **Note**: This is just a note!
+
+### Embedding
+
+Embedding and running code snippets is easy if your provider supports iframe, like [codesandbox.io](https://codesandbox.io):
+
+```html
+
+```
+
+### Highlight
+
+Docup uses [Prism.js](http://prismjs.com/) to highlight code blocks, by default only a few languages are supported, namely: `html` `css` `js` `markdown` `bash` `json`, you can manually load Prism language components to support more languages, e.g. for Go programming language:
+
+```js
+docup.init({
+ highlightLanguages: ['go'],
+})
+```
+
+Available languages:
+
+```js preact
+const { useState } = hooks
+
+export default ({ langs }) => {
+ const [showAll, setShowAll] = useState(false)
+ return html`