README.md などの markdown文書を、emacs でプレビューできる環境を作ろうとしたが、CentOS7より、ubuntu のほうが簡単そうだったので、Dcoker(ubuntu)で emacs 環境を作ってみた。
ubuntu + emacsでmarkdown 文書をプレビューする環境は、下記URLのページを参考にしました。
「emacs-w3mでmarkdown原稿をプレビューする」
1. Docker イメージの作成
用意したファイルは、以下のとおり
[root@centos701 docker]# tree -a emacs-md/ emacs-md/ ├── .emacs └── Dockerfile 0 directories, 2 files
Dockerfile の内容は以下のとおり。
ubuntu のバージョンは 16.04 です。
FROM ubuntu RUN apt-get update # LANG RUN apt-get install -y language-pack-ja-base language-pack-ja RUN locale-gen ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 ENV LANGUAGE ja_JP:ja ENV LC_ALL ja_JP.UTF-8 # TZ RUN cp /etc/apt/sources.list /etc/apt/sources.list.bk RUN sed -i -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list ENV TZ Asia/Tokyo RUN apt-get update \ && apt-get install -y tzdata \ && rm -rf /var/lib/apt/lists/* \ && echo "${TZ}" > /etc/timezone \ && rm /etc/localtime \ && ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \ && dpkg-reconfigure -f noninteractive tzdata RUN cp /etc/apt/sources.list.bk /etc/apt/sources.list RUN apt-get update # emacs RUN apt-get install -y markdown emacs-goodies-el w3m-el ibus-mozc emacs-mozc emacs-mozc-bin ADD .emacs /root/ # entrypoint ENTRYPOINT [ "emacs", "-nw" ]
.emacs の内容は以下のとおり。
(require 'markdown-mode) (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) (define-key markdown-mode-map (kbd "\C-c \C-c \C-e") 'markdown-export) (require 'w3m) (define-key markdown-mode-map (kbd "\C-c \C-c \C-v") (lambda () (interactive) (setq html-file-name (concat (file-name-sans-extension (buffer-file-name)) ".html")) (markdown-export html-file-name) (if (one-window-p) (split-window-right)) (other-window 1) ;; (2016/05/23) ;; (w3m-find-file html-file-name) ;; (2016/05/28) ;; (if (buffer-file-name) (w3m-find-file html-file-name) (w3m-reload-this-page)) ;; (2016/05/29) (if (get-buffer "*w3m*") (prog2 (switch-to-buffer "*w3m*") (w3m-reload-this-page)) (w3m-find-file html-file-name)) (other-window 1))) (require 'mozc) (set-language-environment "Japanese") (setq default-input-method "japanese-mozc") (prefer-coding-system 'utf-8)
Dockerイメージをビルドします。
[root@centos701 emacs-md]# docker build . --rm -t emacs-md
Dockerイメージを確認します。
[root@centos701 emacs-md]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE emacs-md latest 448bd44ed933 25 minutes ago 992MB
2. 動作確認
以下のようにして、Dockerイメージの emacs を起動します。
"-v" で カレントディレクトリを コンテナの /work にマウントし、emacs で /work 配下を編集するようにします。
[root@centos701 sandbox]# ls README.md environments memo modules [root@centos701 sandbox]# docker run -it --rm -v `pwd`:/work emacs-md /work
emacs が起動すると、下図のようにカレントディレクトリの内容が一覧表示されます。
emacs で README.md を開くと、下図のように表示されます。
[Ctrl-c]+[Ctrl-c]+[Ctrl-v]で、下図のように、左右に分割表示されます。
左側がソースで、右側がプレビューです。
カレントディレクトリに markdonw -> html に変換したファイルが作成されるので、不要なら削除します。
[root@centos701 sandbox]# ls README.html README.md environments memo modules