misc:software:Emacs:mode:Pandoc用設定

misc:software:Emacs:mode:Pandoc用設定

はじめに

misc:software:Pandoc?を活用するために markdown-mode.el と pandoc-mode.el を導入する。


markdown-mode.el

インストール

以下の設定を ~/.emacs.d/init.el に追記する。

;; ------------------------------------------------------------------------
;; (auto-install-from-url "http://jblevins.org/git/markdown-mode.git/plain/markdown-mode.el")
(require 'markdown-mode)
(pushnew '("\\.md\\'" . markdown-mode) auto-mode-alist)

そのうえで markdown-mode.el を実際に入手する必要がある。 以下のいずれかの手段を講じること。

その後 emacs を再起動する。

改変

脚注への参照として任意の文字列を指定できるようにする

~/.emacs.d/init.el に以下の設定を追記する。 すでに脚注への参照として使用している文字列については指定できないようにしている。

(defun markdown-footnote-new ()
  "Insert a footnote with a new number and jump to a position to enter the footnote text."
  (interactive)
  (let (fn)
    ;; input *new* footnote name (duplication of footnote name is prohibited).
    (save-match-data
      (while (and (setq fn
                        (read-string
                         (format "footnote name (default %d): " markdown-footnote-counter)
                         nil
                         nil
                         markdown-footnote-counter))
                  (save-excursion 
                    (save-restriction
                      (widen)
                      (goto-char (point-min)) 
                      (search-forward (format "[^%s]:" fn) nil t))))))
    (insert (format "[^%s]" fn))
    (markdown-footnote-text-find-new-location)
    (insert (format "[^%s]: " fn))
    (when (and (integerp fn)
               (= fn markdown-footnote-counter))
      (markdown-footnote-counter-inc))))

脚注を指定する文字列の拡張

脚注を指定する文字として、正規表現でいうところの [A-Za-z0-9_\-] を使用できるようにする。

(defconst markdown-footnote-chars
  "[A-Za-z0-9_\-]"
  "Regular expression maching any character that is allowed in a footnote identifier.")

リンク用の記法 [id]: の判定処理を修正する

リンク用の記法 [id]: の判定処理に不具合がある。 [id]:: を複数行にわたって探し続けてしまうのだ。 この不具合が表れるのは、行頭に [id] と書き、続けて文章を書いたときである。

これを解決するには init.el に以下の設定を追記する(これで、markdown-mode.el の (defconst markdown-regex-reference-definition ...)[^^][^^\n] に書き換える。)。 こうして [id]:: を同一行から探し出すようになる。

(defconst markdown-regex-reference-definition
  "^ \\{0,3\\}\\(\\[[^^\n]+?\\]\\):\\s *\\(.*?\\)\\s *\\( \"[^\"]*\"$\\|$\\)"
  "Regular expression for a link definition [id]: ...")

keymap の設定の確認

markdown.el の markdown-mode-map はつぎのように設定されている。

Element insertion

markdown-insert-link C-c C-a l
markdown-insert-reference-link-dwim C-c C-a r
markdown-insert-wiki-link C-c C-a w
markdown-insert-image C-c C-i i
markdown-insert-bold C-c C-p b
markdown-insert-bold C-c C-s s
markdown-insert-italic C-c C-p i
markdown-insert-italic C-c C-s e
markdown-insert-code C-c C-p f
markdown-insert-code C-c C-s c
markdown-insert-blockquote C-c C-s b
markdown-blockquote-region C-c C-s C-b
markdown-insert-pre C-c C-s p
markdown-pre-region C-c C-s C-p
markdown-insert-hr C-c-
markdown-insert-header-1 C-c C-t 1
markdown-insert-header-2 C-c C-t 2
markdown-insert-header-3 C-c C-t 3
markdown-insert-header-4 C-c C-t 4
markdown-insert-header-5 C-c C-t 5
markdown-insert-header-6 C-c C-t 6
markdown-insert-title C-c C-t t
markdown-insert-section C-c C-t s

Footnotes

markdown-footnote-new C-c C-f n
markdown-footnote-goto-text C-c C-f g
markdown-footnote-return C-c C-f b

WikiLink Following

markdown-follow-wiki-link-at-point C-c C-w
markdown-next-wiki-link M-n
markdown-previous-wiki-link M-p

Indentation

markdown-enter-key C-m

Visibility cycling

markdown-cycle <tab>
markdown-shifttab <S-iso-lefttab>

Header navigation

outline-next-visible-heading C-M-n
outline-previous-visible-heading C-M-p
outline-forward-same-level C-M-f
outline-backward-same-level C-M-b
outline-up-heading C-M-u

Markdown functions

markdown C-c C-c m
markdown-preview C-c C-c p
markdown-export C-c C-c e
markdown-export-and-view C-c C-c v

References

markdown-check-refs C-c C-c c

Markdown 形式のファイルから html (分割と単一)と rtf を生成する

css ファイルと html ファイルの用意

まず、/app/Pandoc_tools に以下のファイルを置く。 詳しくは misc:software:Pandoc:tools? を参照のこと。

pandoc-mode.el の導入と設定

以下の設定を ~/.emacs.d/init.el に追記する。

;; (auto-install-from-url "http://blechmusik.xii.jp/resources/app/emacs/site-lisp/pandoc-mode.el")
(require 'pandoc-mode)
(add-hook 'markdown-mode-hook 'pandoc-mode)
(define-key markdown-mode-map (kbd "C-: C-: C-g") 'pandoc-generator-dwim)

そのうえで pandoc-mode.el を実際に入手する必要がある。 以下のいずれかの手段を講じること。

その後 emacs を再起動する。

使い方

変換したいファイルを開いている状態で C-: C-: C-g (pandoc-generator-dwim) と入力する。 ファイルローカル変数(File Variables - GNU Emacs Manual)で文字列が設定されているなら、その文字列を分析して変換する。 そうでなければつづけて以下のオプションを参考にして変換先の形式を入力すること。 複数のオプションを使用してもよい。

入力する文字 処理
S 単一 html 形式で保存する
C 複数 html 形式で保存する
R RTF 形式で保存する
B 変換したファイルを ファイル名/ に保存する
T 変換したファイルを /tmp/ に保存する
V Windows の関連づけにしたがって変換したファイルを開く

Last modified : 2016/12/28 17:29:51 JST
blechmusik (blechmusik@gmail.com)