ヴォルフロッシュ

Blog

Published on

RSS

Markdownカラーリング・シンタックス for CotEditor

第2次CotEditorシンタックス定義ブームが私に来ているらしく(第1次は数年前にgnuplotとImageJのを作ったとき)、また1つ書いてみました。今回はMarkdown記法です。

Markdown Colouring Syntax for CotEditor
[icon]
CotEditor

プレーンテキスト好きなので、普段のちょっとした覚え書きとかメモは毎度のCotEditorで書いてるのですが、やはりちょっと味気なく感じることもある。タイトルくらい色が付いたら見やすいのになぁ、なんて思っており、だったらMarkdownが汎用性もあっていいのでは、と。そいで作りました。

ひとまずその定義ファイルは

に他のと一緒に置いてます。どちらかというとまだβ版なのですが、普通に使う分にはわりあい使えるはずです。

あと、今回作ったのはあくまでカラーリングシンタックス定義なので、Markdownで書いた文書をHTML等へと変換する機構は備えていません。以前はCotEditorから変換を蹴るスクリプトを配布している方がいらしたみたいなのですが…。

と、言っておりましたが CotEditorでMarkdown にスクリプトメニューから実行する方法を書きました。

以下ぐだぐだと作った過程について。


最初Markdownのシンタックスなんてもうあるんじゃねーの? と思っていたのですが、探してみると意外となく「なら自分で作るか、文法少なそうだし」と思ったのが関の山、ものすごくめんどくさかった…。

わたくし過去の3つほど既にCotEditorのシンタックス定義ファイルは作ったことがあるのですが、あれって基本的にはひたすらその言語のコマンドや属性を登録していく、っていう作業なんです。もちろん一部はアウトラインの取り方とかコメントのルールとか正規表現を書いたりする場面もあるのですが、基本的は単純なコピペ作業だったり。

怒濤の正規表現

ところが、Markdownはそうはいかない。Markdownはコマンドがどうとかいうよりも「**で囲まれたら強調」とか「行頭に#があったら見出しになって、しかもその見出しには最後に好きなだけ#つけていいよ、ただし行頭のスペースは3回までしかゆるさん」なのでひたすら仕様を読んで、それに合わせた正規表現を書いていく、という頭の体操みたいな作業。MarkdownをHTMLに変換するPerlスクリプトは本家が配布しているのでそれからマッチングしているところを抜き出そうかとも思ったのですが、それはそれでスクリプトを読んだり変換したりで骨が折れそうなので直接正規表現起こし。

あんまり普段から正規表現をバンバン書いてるわけじゃないので、あまりスマートな書き方ではないかもしれませんが、やっとそれなりのができたんでいったん配布しちゃおうと思います。普通に書いてる分にはおそらく変な色の付き方しないと思います。

あとMarkdownはプログラム言語ではないので、どの文法をどの色に割り振るか迷いました。というか迷ってます。

簡易構造化言語として、Markdownでアウトラインを書くこと自体を目的としているならあんまりカラフルじゃない方がいい気がするし、一方でHTMLに変換するための記述方式としてMarkdownを採用しているなら、ある程度文法とマークアップ(マークダウン?)の状態が見えるようにいろんな色に割り振った用がいいような気がするし。しかもエディタの配色なんて人によって全然違うだろうから「これは強調したい」とか「これは補足程度に」とかあんまりできない。まぁ、このくらいが妥当かなと思って割り振ってみてますがいかがでしょう?

いかんせんあまり得意ではない正規表現でゴリゴリとカラーリング条件を書き続けることになり一部例外処理がしきれていないのですが、普通の使う分にはちゃんとカラーリングされると思うのでまぁ使ってみてください。そいで要望があったらフィードバックを頂ければ。かならず対処できるとはかぎりませんが。

Comment

この記事へのコメント受付は終了しました。