ss-to-html 説明書

ss-to-html は、さくらスクリプトからHTML/XHTMLへ変換するプログラムです。

偽さくらスクリプトスタイル」に示した様な、対話型の文章をHTMLで書く時に、少し楽が出来るかも知れません。

おまけとして、さくらスクリプトをそれっぽく上演する機能もあります。

1. 導入篇

1.1 必要環境

ss-to-html の「お遊び機能」しか使はない方は、これだけで充分です。

1.1.1 より使ひこなすには

かなり人を選びます。御免なさい。

1.2 内容物

.xyzzy
ss-to-html を xyzzy にインストールする際に、 .xyzzy 又は siteinit.l に書くコードの例
NiseSakuraScript.css
変換したHTMLに適用するCSSの例
ss-to-html.html
説明書(この文書)
ss-to-html.l
プログラム本体
ss-to-html.lc
プログラム本体をバイトコンパイルしたもの

ss-to-html.l と ss-to-html.lc 以外のファイルは、プログラムの動作には必要ありません。

1.3 インストール方法

同梱の .xyzzy も参考にして下さい。

  1. ss-to-html.lss-to-html.lc の2つのファイルを、 xyzzy のホームディレクトリに在るディレクトリ site-lisp の直下に置きます。
  2. xyzzy の初期化ファイルに、次のコードを追加します。
    (load-library "ss-to-html")
  3. ユーザ用の初期設定をする場合、更にその次に追加します。
  4. site-lisp/siteinit.l に追加した場合は、バイトコンパイル(M-x byte-compile-file; 「M-x」は「Altを押しながらxを押す」の意)し直します。
  5. xyzzy を再起動して完了です。

1.3.1 アンインストール方法

インストール方法の逆をやって下さい。

1.4 ユーザ用の初期設定

同梱の .xyzzy を参考にして下さい。

1.4.1 ユーザが変更可能な外部変数

LISPに詳しい方向けの情報です。詳細は ss-to-html.l を御覧下さい。

2. 使用篇

2.1 基本的な使用方法

  1. xyzzy を起動します。
  2. 新規バッファ、又は *scratch* にさくらスクリプトを書いてゆきます。(さくらスクリプトを書いた既存のファイルが有る場合は、それを開きます。)
  3. ss-set-ghost を呼び出して(M-x ss-set-ghost)、ゴースト名を選び、キャラクタの名前をセットします。この時、セットされた名前がステータスバーに現れます。
  4. ss-to-html 等、目的に応じた変換函数を呼び出します。
  5. *SakuraScript* バッファに変換結果が出力されるので、それを好きな文書に貼り付けます。(このバッファは保存不要に設定されてゐます。)
  6. 続いて別の変換をする場合は、念の為に *SakuraScript* バッファを閉ぢてからにして下さい。

2.2 変換函数

ss-to-html
さくらスクリプトからHTMLへ変換する、最も基本的な函数です。
実行の前後で外部変数は変更されませんし、評価もされません。
表情の画像として、「surfaces/surfacennnn.png」(nnnn: 4桁のサーフェス番号, 0000 ≦ nnnn ≦ 9999)なるファイルが存在してゐるものと仮定してパスを書いてゐます。
ss-to-html-default
基本的には ss-to-html と同じですが、実行時に外部変数を評価します。
ss-to-html-with-dl
"櫻花さん番外地" format
サーフェス(表情)番号の情報は使はれません。
ss-to-html-without-img
"まゆらぼ" format
サーフェス番号を段落のクラス名として割り当てる方法で、HTMLのソースはすっきりしますが、表情の画像を挿入する場合、CSSがかなり冗長になります。
ss-to-xhtml
ss-to-html のXHTML版です。

これらの函数とは違ふマークアップをしたい場合は、同梱の .xyzzy にある様に、 defun と ss-preset を使って函数を追加して下さい。

2.3 その他の函数

ss-add-ghost
ss-set-ghost の補完リストで表示されるゴーストを追加します。詳細は同梱の .xyzzy を御覧下さい。
ss-set-ghost
ゴースト名を一覧から選び、キャラクタ名(\0, \1, …)を設定します。
ss-set-name-freely
キャラクタ名を \0, \1, … の順で自由に設定します。何も入力しないで(空にして) Enter を押すと、以降のキャラクタは居ないものとして扱はれます。
: M-x ss-set-name-freely さくら Enter うにゅう Enter Delete Enter((1 . "うにゅう") (0 . "さくら"))

2.4 ss-play-ss: お遊び機能

ss-play-ss は、さくらスクリプトをそれっぽく上演する機能で、 ss-to-html の副産物として生まれました。

materiaSSPCROWDAEに続く第5のベースウェアを目指し…といふのは嘘です。無理です。

使ひ方は、基本的な使用方法に於いて、変換函数を呼び出すところで ss-play-ss を呼び出して下さい。それっぽく表示されます。

途中で止める場合は、C-gを押すか、何かキーを押して下さい。

*ss-message-wait* の値を変更することで、メッセージの速さを変へられます。: (setq *ss-message-wait* 0.08)

2.5 対応済みのさくらスクリプトコマンド

表情:
\s[n], \sn; n: natural number
発言者:
\p[n], \pn; n: natural number, 0 ≦ n ≦ 9
\h = \0, \u = \1
改行:
\n, \n[half]
キャラクタの発言の最初にある\nは無視されます。
ウェイト:
\wn, \_w[m]; n, m: natural number, 0 ≦ n ≦ 9
会話の終了:
\e
会話の最後ごとに\eを置くことで、複数の会話を一挙に変換できます。
「\」記号:
\\

その他の\で始まるコマンドは、恐らく無視されます。

注意: さくらスクリプト中に改行(\nでない、普通の改行)が有っても、変換の際には全て無視されます。逆に言へば、見易さの為に、幾らでも普通の改行を挿入することができます

3. このプログラムについて

3.1 製作者

製作者
空拇 (一問一答 - DKCCの広場)
ファイル配布所
さくらスクリプトからHTMLへ (ss-to-html) - 青空物置

3.2 適用ライセンス

書庫に含まれる全てのファイルに於いて、私、空拇が作った部分は、著作権放棄とします。

Public Domain: Please feel free to reproduce or edit (except quotation)

3.3 更新履歴

2005年夏
「さくらスクリプトを(LISPで)HTMLに変換できたら面白さうだ」と妄想する。
2005年12月6日
取り敢へず作り始める。
2005年12月16日 Ver.0.0.0.20051216 (非公開)
核となる部分が固まり、それなりに変換できる様になる。
2005年12月19日 Ver.0.1.0.20051219 (非公開)
お遊び機能(ss-play-ss)を作る。
外部変数を保存する函数(save-variables)を作る。
2005年12月22日 Ver.0.2.0.20051222 (非公開)
キャラクタの名前をゴースト名から選ぶ函数(ss-set-name)を作る。
2005年12月25日 Ver.0.3.0.20051225 (非公開)
リファクタリング。ソースのブロックごとに見出しを追加。
ss-set-name: ハッシュ表を使ふ様に改良し、ss-set-ghostと改名。
2005年12月28日 Ver.1.0.0.20051228 (非公開)
現在のバッファを変換するのではなく、別のバッファに変換結果を出力する様に変更。
出力形式を簡単に設定できるマクロ(ss-preset)を作成。
幾つかの函数・マクロ・変数の名前を合理化。
save-variables: 実装が間違ってをり、バイトコンパイルが通らなかったので修正。
ss-to-html-core: 文字と文字列で変数を分けた。(char ⇒ char, str)
2005年12月31日 Ver.1.0.1.20051231
公開の為のドキュメントの整備。
ss-set-name-freely: 設定後にキャラクタ名を表示する機能を追加。
2007年9月7日 Ver.1.0.2.20070907 (非公開)
ss-to-html-core: ss-close-paragraph等にp以降の引数を渡す様にした。
2008年6月23日 Ver.1.0.3.20080623
save-variables: gensymの使ひ方が間違ってをり,シンボル衝突の回避ができてゐなかったのを修正。

3.4 未実装の機能