はじめに
筆者はemacsでmarkdownを書く時にはmarkdown-modeのパッケージをインストールして、gfm-modeを使用する。
.emacs/init.elは多分こんな感じ。
;; Markdown mode
(use-package markdown-mode
:ensure t
:init
(add-to-list 'auto-mode-alist '("\\.md$" . gfm-mode)))
表を作る基本
下記のような表を作りたいとする。
| 番号 | 項目 |
|---|---|
| 1 | いちばん |
| 2 | にばん |
markdownとしては下記のように記述する。
| 番号 | 項目 | |------|----------| | 1 | いちばん | | 2 | にばん |
これをいちいち手入力するのは結構面倒くさい。
下記のようなテキストを手入力して
||| |-|
C-iすると表のように整形してくれることに気づいた
| | | |---|---|
そして手入力で
| 番号 | | |---|---|
とやったあとでC-iすると、下記のように自動で整形してくれる。
| 番号 | | |------|---|
しばらくはこれで表を入力していた。
一括で値を設定したい
まとまったデータをコピペしてきて表にしたい場合、上記のやり方でも結構面倒くさい。
例えば下記のようなまとまったデータがある場合。CSVのデータとか。
番号,項目 1,いちばん 2,にばん 3,さんばん
これをset-markで選択状態にしてC-c C-c |と入力すると下記のようにしてくれる。
| 番号 | 項目 | | 1 | いちばん | | 2 | にばん | | 3 | さんばん |
その後に2行目に|-|を追加して
| 番号 | 項目 | |-| | 1 | いちばん | | 2 | にばん | | 3 | さんばん |
C-iするとこのようになる。
| 番号 | 項目 | |------|----------| | 1 | いちばん | | 2 | にばん | | 3 | さんばん |
つまり、markdown-modeで表を作る時はまずはコンマ区切りのデータを並べる。
C-c C-c |で表の形にして、ヘッダと値の分離は|-|+C-iで行う。
まとめ
この作り方を知らない頃はTables Generatorを使用していた。
ただ、これだとデータをオンラインでサーバに送るような気がしていて、仕事で使うのはちょっと心配だった。 ひょっとしたらJavaScriptでブラウザ上で完結していてサーバにデータを送るようなことはしないのかもしれないが。
まとまったデータをCSVにすること自体は割とどのようにでもできるので、 markdown-modeで表を作る時にこのやり方を知っているとかなり便利。