diff --git a/README.md b/README.md
index d1da14ae..db36e819 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,71 @@
# vim-jp.github.io
+Source of
+
* [EditSite](https://github.com/vim-jp/vim-jp.github.io/wiki/EditSite) サイト編集の手順 (ローカル環境での確認方法)

この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。
+
+## ローカルでビルド・確認する方法
+
+### 必要なもの
+
+* Docker
+* (オプション) Python 3: ローカルHTTPサーバーをPython 3で動かす
+
+### ビルド
+
+以下のコマンドを実行すると `_site/` ディレクトリにHTML他が出力される。
+
+```console
+$ ./_scripts/docker_jekyll jekyll build
+```
+
+以下のようにするとインクリメンタルビルドが有効になり、
+2回目以降のビルド時間が短縮される。
+
+```console
+$ ./_scripts/docker_jekyll jekyll build -I
+```
+
+### ローカルサーバー
+
+以下のコマンドで `jekyll serve` を実行し、ビルドした上でローカルHTTPサーバーが
+起動し、手元のWebブラウザで内容を確認できる。
+
+```console
+$ ./_scripts/docker_jekyll_serve
+```
+
+これは4000番のポートでコンテンツを供給する。
+Webブラウザで を開くことで内容を確認できる。
+
+また以下のように同コマンドへオプションを指定すると、インクリメンタルビルドと
+変更監視&自動再ビルド機能が有効になる。
+
+```console
+$ ./_scripts/docker_jekyll_serve -wI
+```
+
+Windowsなどのシステムでは変更監視が機能しない場合がある。
+そのようなケースではPython 3でローカルサーバーを立て、
+ビルドは手動でやってしまったほうが手っ取り早い場合があるかもしれない。
+そのやり方の詳しくは後述。
+
+ローカルサーバーだけが必要で、変更監視や自動更新が不要な場合は次のように
+起動しても良いかもしれない。
+
+```console
+$ ./_scripts/docker_jekyll_serve --skip-initial-build --no-watch
+```
+
+#### Pythonを使用したローカルサーバー
+
+以下のコマンドでPythonによるローカルHTTPサーバーを起動できる
+
+```console
+$ ./_scripts/python_http_server
+```
+
+これは8000番のポートでコンテンツを供給するので、
+Webブラウザで を開くことで内容を確認できる。
diff --git a/_scripts/docker_jekyll b/_scripts/docker_jekyll
new file mode 100644
index 00000000..e5588939
--- /dev/null
+++ b/_scripts/docker_jekyll
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# This uses GitHub Container Registry.
+# So you need to login ghcr.io with Personal Access Token which have scope read:packages at least.
+#
+# Example:
+#
+# cat | docker login ghcr.io -u USERNAME --password-stdin
+# (type your PAT and Ctrl-D twice)
+
+set -eu
+
+dir="$(pwd)"
+
+case $(uname -s) in
+ MSYS*) dir=$(cygpath -w $dir) ;;
+esac
+
+docker run --rm -it \
+ --workdir //srv/jekyll \
+ -v "${dir}:/srv/jekyll" \
+ -p 4000:4000 \
+ --entrypoint "" \
+ ghcr.io/actions/jekyll-build-pages:v1.0.13 \
+ "$@"
diff --git a/_scripts/docker_jekyll_serve b/_scripts/docker_jekyll_serve
new file mode 100644
index 00000000..c2fe0658
--- /dev/null
+++ b/_scripts/docker_jekyll_serve
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# This uses GitHub Container Registry.
+# So you need to login ghcr.io with Personal Access Token which have scope read:packages at least.
+#
+# Example:
+#
+# cat | docker login ghcr.io -u USERNAME --password-stdin
+# (type your PAT and Ctrl-D twice)
+
+set -eu
+
+dir="$(pwd)"
+
+case $(uname -s) in
+ MSYS*) dir=$(cygpath -w $dir) ;;
+esac
+
+docker run --rm -it \
+ --workdir //srv/jekyll \
+ -v "${dir}:/srv/jekyll" \
+ -p 4000:4000 \
+ --entrypoint jekyll \
+ ghcr.io/actions/jekyll-build-pages:v1.0.13 \
+ server -H 0.0.0.0 "$@"
diff --git a/_scripts/python_http_server b/_scripts/python_http_server
new file mode 100644
index 00000000..d91e11cd
--- /dev/null
+++ b/_scripts/python_http_server
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+python3 -m http.server 8000 --directory _site