月別アーカイブ: 2013年11月

web-modeでハイライトがうまくいかない

web-modeでphpとhtmlの混合ファイルを開くと、global-font-lock がオンになっているにもかかわらずハイライトが消える。
ここで M-x font-lock-mode すると、font-lock が disable になったうえで、なぜかコードに色がつき、whitespace-modeで色付けしていた空白の色が消える。

調べてみると、どうも whitespace-mode と web-mode の相性が悪いらしい。
Syntax highlighting vanishing · Issue #119 · fxbois/web-mode · GitHub
Incorrect syntax highlighting · Issue #18 · fxbois/web-mode · GitHub

うーん。global-whitespace-mode は切りたくないんだよなあ。なんかうまい方法ないものか。

 ***

php,html.js なんかが入り混じったファイルの編集と言えば昔ながらのmmm-modeとかありますが、
今ではいろいろ選択肢が増えてるらしい。
EmacsWiki: Multiple Modes
mumamoっていうのもよく聞くけど使ったことないなあ。

web-mode だと html-mode の各種機能が使えないのが不便だったりするし、
やっぱり素直にmmm系使った方がいいのか。
暇なときにいろいろ使い比べてみたい。
どっかに比較記事落ちてないかなあ。

 

org-mode勉強中

今更ながらにorg-modeの勉強中。
Wiki記法みたいなのは今までいくつも使ってきていい加減混乱してきているので、
書くときはorgに統一して逐一エクスポートするようにすればいろいろ捗るかなと思ったんですが、
なかなか対応してる形式が少ない…

org-export-generic.el っていうのを使えばいろんな形式に変換できるっぽい?
でも最新のorgには含まれてなかった。org-mode頻繁にアップデートされてるみたいだし仕組みが変わっちゃったんだろうか。

とりあえず最低限MarkdownとTextile(Redmine用)に変換できればうれしいんだけどなー。

 ***

しかし日常のちょっとしたドキュメント書くのにすごい便利ですねorg-mode。
なんか今までめんどくさそうなイメージがあって使ってなかったけど、別に全機能覚えなくても見出しと表組み程度が使えたら十分かも。
Word使うよりこれで書いてodtに出力した方がよっぽど速い!

 

続・HTMLのtableタグを生成する

前に「HTMLのtableタグを生成する」というのを書いたものの、
どうもやっぱりいまいち使いづらくて他の方法をいろいろ試していたんですが、
結果としてorg-modeを使うのが一番簡単かなーと思ったのでメモしておきます。

org-modeの使い方についてはググればいくらでも出てくるので省略。

テーブル作成

org書式だとこんな感じ。

|              | 見出し1 | 見出し2 |
|--------------+---------+---------|
| テスト       | テスト  | テスト  |
| テストテスト | *test*  | test    |

パイプを入力したら、あとは適当にTab押してるといい感じに整形してくれます。便利。

CSVからテーブル作成

a,b,c
d,e,f
g,h,i

こんな状態の部分をリージョン選択して、「C-c |」(エルじゃなくてパイプ)すると…

| a | b | c |
| d | e | f |
| g | h | i |

わあ便利!

HTML出力

普通に「C-c C-e h」でファイルごと出力するのもありですが、
表の場所で「M-x org-table-export RET」→ファイル名入力→「orgtbl-to-html(自動で入力される)」とすれば、テーブル部分だけをエクスポートしてくれるようです。

<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup><col class="left" /><col class="left" /><col class="left" />
</colgroup>
<thead>
<tr><th scope="col" class="left"></th><th scope="col" class="left">見出し1</th><th scope="col" class="left">見出し2</th></tr>
</thead>
<tbody>
<tr><td class="left">テスト</td><td class="left">テスト</td><td class="left">テスト</td></tr>
<tr><td class="left">テストテスト</td><td class="left"><b>test</b></td><td class="left">test</td></tr>
</tbody>
</table>

tableタグのオプションが邪魔な場合はある程度設定でカスタマイズできるようです。

  (setq org-export-html-table-tag "<table>")
(setq org-export-table-header-tags '("<th>" . "</th>"))
(setq org-export-table-data-tags '("<td>" . "</td>"))
(setq org-export-html-table-align-individual-fields nil)
<table>
<colgroup><col class="left" /><col class="left" /><col class="left" />
</colgroup>
<thead>
<tr><th></th><th>見出し1</th><th>見出し2</th></tr>
</thead>
<tbody>
<tr><td>テスト</td><td>テスト</td><td>テスト</td></tr>
<tr><td>テストテスト</td><td><b>test</b></td><td>test</td></tr>
</tbody>
</table>