カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Nyarlax書き直し中

最近更新して無いので更新。


最近、blosxomの記法プラグインnyarla(自作/非公開)を書き直してます。

記法そのものを整理して汎用化みたいな事をやっているので、 記法そのものを変更する破目になってます。 なので、今まで書いたエントリも書き直すことになってるという面倒くさい状況です。

まあまだ記事が少ないので何とかなりそうなんですが、これは記法をよく考えて 作ってなかったからこうなったんですけどね。

ということで、今後失敗しないように、記法を作る際に考えておくことを、 まとめてみるエントリ。

ちなみに、経験論で書いてます。あんまり当てにしないように。

必要な記法

まず、この手の記法は(X)HTMLに変換されることが前提だと思います。 ちょっと乱暴かもしれませんが、必要な記法はブロック記法インライン記法分けることができます。

なので必要になる記法は、

  • 汎用ブロック記法
  • 汎用インライン記法
  • 独自記法

の三つになるような気がします。

で、もうちょっと踏み込んで説明すると、 汎用ブロック記法は 複数行にわたる記法のテンプレート 、汎用インライン記法は 一行で終了する記法のテンプレート になります。あと独自記法はその名の通り ある要素を表す特化した記法 です。

基本的にこの三つで大体の記法はできると思います。 あとは記法を作っていけばいいのですが、記法を作る際になるべく 汎用記法をつかう 事をお勧めします。 どれもこれも独自の記法だと 記法が覚えにくくなり 、かつ 実装が面倒くさくなる という事態に陥ります。 というか陥ってます。自分が。

あとまあ 思いつかなくなる というのもありますが。

実際に書け!

記法を作ったら、というか仕様を決めたら *実際に書いてみる** というのが重要です。 大体10個ぐらい文書を書いてみると不満やら問題点やらが出てくるので、仕様を見直すことになります。

これをやらずにいきなり本番で使用するとあとで仕様変更した挙句、いままで書いた記事を書き直すという事態になります。 まあ、自分のことなんですが。

で、書く→ 見直すを繰り返して仕様を煮詰めていきます。このときに拡張性に考慮しておくと、 あとで記法を足すときに、足しやすくなります。

そして実装

ある程度仕様が煮詰まり、これで問題ないだろうという所まで来たら次に実装です。 まあ実装に関しては、プログラミングに詳しい人なら楽だと思います。

で、実装する際に (X)HTMLを生成する部分は分離しておく とコードがすっきりします。 僕の場合 &make_html()というサブルーチンとして分離してあります。

分離したコードと分離して無いコードを見ると見易さが全然違います。さらに分離しておくと、 実装が容易くなることもあります。というのがここのところ書き直していたときの感想です。

オブジェクト指向ができるようになるともっとスマートになりそうな気がします。

まとめ

とりあえずまとめると、記法を作るときや実装するときは、 使いまわしができるように 作るというのがコツです。

まあ、記法以外のことでも同じことが言えそうですが。プログラミング全般はそうかも。

おまけ

ちなみにnyarlaxですがまだ書き終わってません。 エントリを後で書き直すことになるかもしれないと思うとエントリを書くのが面倒に感じます。

早く書き上げないとまずいな。