ss-to-html 説明書
ss-to-html は、さくらスクリプトからHTML/XHTMLへ変換するプログラムです。
「偽さくらスクリプトスタイル」に示した様な、対話型の文章をHTMLで書く時に、少し楽が出来るかも知れません。
おまけとして、さくらスクリプトをそれっぽく上演する機能もあります。
1. 導入篇
1.1 必要環境
ss-to-html の「お遊び機能」しか使はない方は、これだけで充分です。
1.1.1 より使ひこなすには
- 簡単なさくらスクリプトの智識が必要です。
- 基礎的なHTML(XHTML)の智識が必要です。例へば、クラス名の付け方、HTMLとCSSの関聯付け方等。
- 基礎的なCSSの智識が必要です。例へば、特定のクラスにのみスタイルを適用する方法等。
- LISPの智識は必須ではありません。複雑なマークアップ(条件分岐など)をしたい時のみに必要です。
かなり人を選びます。御免なさい。
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 も参考にして下さい。
- ss-to-html.l と ss-to-html.lc の2つのファイルを、 xyzzy のホームディレクトリに在るディレクトリ site-lisp の直下に置きます。
- xyzzy の初期化ファイルに、次のコードを追加します。
(load-library "ss-to-html")
- ユーザ用の初期設定をする場合、更にその次に追加します。
- site-lisp/siteinit.l に追加した場合は、バイトコンパイル(M-x byte-compile-file; 「M-x」は「Altを押しながらxを押す」の意)し直します。
- xyzzy を再起動して完了です。
1.3.1 アンインストール方法
インストール方法の逆をやって下さい。
1.4 ユーザ用の初期設定
同梱の .xyzzy を参考にして下さい。
1.4.1 ユーザが変更可能な外部変数
LISPに詳しい方向けの情報です。詳細は ss-to-html.l を御覧下さい。
*ss-current-p-name*
*ss-ghost-table*
*ss-insert-open-paragraph*
*ss-insert-close-paragraph*
*ss-insert-open-dialogue*
*ss-insert-close-dialogue*
*ss-insert-break-line*
*ss-message-wait*
2. 使用篇
2.1 基本的な使用方法
- xyzzy を起動します。
- 新規バッファ、又は *scratch* にさくらスクリプトを書いてゆきます。(さくらスクリプトを書いた既存のファイルが有る場合は、それを開きます。)
ss-set-ghost
を呼び出して(M-x ss-set-ghost)、ゴースト名を選び、キャラクタの名前をセットします。この時、セットされた名前がステータスバーに現れます。
ss-to-html
等、目的に応じた変換函数を呼び出します。
- *SakuraScript* バッファに変換結果が出力されるので、それを好きな文書に貼り付けます。(このバッファは保存不要に設定されてゐます。)
- 続いて別の変換をする場合は、念の為に *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 の副産物として生まれました。
materia、SSP、CROW、DAEに続く第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 未実装の機能
- %で始まる変数の解釈
- シンクロナイズドセッションの解釈
- パッケージ化(必要であれば)