Emacs で Markdown のテーブルを整形する

https://github.com/qwerqwer1111/md-table-formatter

Atommarkdown-table-formatter みたいなものが Emacs でも欲しかった. Emacs Lisp で全部実装するのは厳しかったので, shell-command-on-regionPythonスクリプトを呼び出すようにした.

各行のカラム数が異なっていたり, 入力のフォーマットがおかしい場合には整形しないようにしている.

環境

使い方

md-table-formatter.pyをどこかに保存して, ~/.emacs.d/init.elに下記のように記載しておけば, C-x tで選択範囲内のテーブルを整形できる.

(defun md-table-formatter (start end)
 (interactive "r")
 (save-excursion
   (shell-command-on-region start end "python /path/to/md-table-formatter.py" nil t)))
(global-set-key (kbd "C-x t") 'md-table-formatter)

サンプル

入力

|Left align|Center align|Right align|
|:-|:-:|-:|
|Content|Content|Content|
|Content|Content|Content|

出力

| Left align | Center align | Right align |
|:-----------|:------------:|------------:|
| Content    |   Content    |     Content |
| Content    |   Content    |     Content |