はじめに
筆者は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で表を作る時にこのやり方を知っているとかなり便利。