これは reStructuredText(以下rest)の rest2html.py を拡張してタイ式楽譜のテーブルを生成するディレクティブを追加したもの。
上記のファイルがあるディレクトリで:
> python scorethai.py --stylesheet=index.css sample.txt sample.html
と実行すると sample.html が生成される。
オプションとして使いそうなのは:
--stylesheet=filename | |
スタイルシートのファイル名 | |
--language=en | meta情報に言語を指定する。今はまだthが無いのでen。 |
--link-stylesheet | |
スタイルシートを埋め込まずに "link rel" する。 | |
--traceback | スクリプトがエラーを起こしたらトレースバックして問題を探す。 |
このスクリプトでは、restパーサーに以下のディレクティブを一つだけ追加している。
書式:
.. scorethai:: キャプション、無くても良い :title: ヘッダ文字列 :columns: 表本体の列数 :widths: 各列の幅の並び :class: 表に付加するクラス名 :id: 曲id(まだ未使用) 楽譜本体ブロック
出力サンプルのうち、ケーンの独奏を採譜したものでは音符の属性などのもう少し複雑な記述をしている。
音符の属性は任意の範囲の音符を囲んで属性付けするもの。 x< で属性 x をオン、 >x で属性 x をオフ。 x は任意の一文字。 実際には囲まれた範囲に class 'x' を付加するだけなので、クラス名に使える文字で一文字なら何でも追加でき、表示はスタイルシート次第となる。
このサンプルではスタイルシート scorethai.css に以下の属性を定義してある。:
/* 音符の属性とそれに対応するタグを定義 */ span.s { font-size: 0.8em; } span.e { font-weight: bold; } span.u { text-decoration: underline; } /* 記号用のタグ(^に続く文字列) */ td span.mark { vertical-align: super; font-size: xx-small; }
例:上記サンプル楽譜のソースの最初:
: intro ^ซซ่-- s<- - - ร่,- - - -, - - - ร่, - - ร่ ร่, - - ร่ ร่, - - ร่ ร่, - - ร่ ร่, {- ด่ ล ซ}>s^4,{- ม ร ด}^3, ม^ล ด ร ซ^ด่, {ม^ล ซ^ด่ ร ซ^ด่ }^7,
これらの属性の範囲が複数小節にまたがった場合、小節の境目で終了タグが出力されるが、 次の小節で再び継続するように開始タグが挿入される。 念のためにスクリプトは属性のオン・オフが対応しない場合は警告を表示する。
上記の例の ^ซซ่-- は ^ に続く部分が記号の指定。 このサンプルでは「ここから先、ドローンとして低い ซ と ซ่ の音を出しっぱなし」という意味で使っていて、 スタイルシートで上付きの極小サイズの表示になる。
追加:範囲指定ではなく一音だけに属性を付加するのに便利なように、``音符.x`` という表記を加えた。 ด.e とすると、この一音が強調になる。また ล.e.u なら強調+アンダーライン表示になる。
date: | 2006-12-06 上付き記号を * から ^ に変更。 |
---|---|
date: | 2006-11-30 text.class の書式を追加。 |
date: | 2006-11-20 行末の / で改行。それ以外の / はテキストとして扱うように変更。 |
date: | 2006-11-14 first. |
author: | muri@tri6.net |