reference.xml を使う

Last modified: "2004/11/27 08:36:05"

Intro

山本さんの reference.xml の頁

xyzzy reference を手っ取り早く使うには、服部さんの reference.chm が便利です。また、kia さんの refer-for.l (または Nobuaki ARIMA さんの Another refer-for) が使える環境であれば、reference.xml を直接参照できます。が、しかし、

reference.xml からは、いろいろなものがつくれるらしい。

とりあえず、Perl (要 Jcode, XML-DOM) をインストールし、 山本 泰三さんのぺーじから reference.lzh と、 服部さんのぺーじから、 xml2xxx.lzh を頂きます。reference.lzh と xml2xxx.lzh から展開したファイルは、同じフォルダに展開しておきます。 ここではすべて、C:\xyzzy\etc\ におくものとします。

xml2xxx.lzh に含まれるコンバート用スクリプトは、Perl 5.8 に対応してないそうなので、 少し手を加えて動作するようにしてみました。HTML 版と Info 版で発生していたと思われる文字化けは、 おそらく解消されていると思います(しかし自信なし)。以下のコンバータを使用する場合は、 Jcode は必要ありません。
xml2xxx.lzh 2003.07.05版

これは、上記のコンバータを使って reference.xml から作成したものをまとめたもの。
reference-xml2xxx-20041115.lzh
(HTML 版, TEXT 版, Info 版, lisp キーワードファイル, ese-fortune 用 dat ファイル)


Table of contents


xml to text

xml2txt.pl を使って reference.xml から reference.txt を作成すると、 info-modoki-mode で使えるようになります。info-modoki-mode は、プレーンテキストを xyzzy から直接扱うため、 スペックの低いマシンでも軽快に動作します(たぶん)。

とりあえず、reference.txt を作成します。 M-x shell または、コマンドプロンプトから以下を実行します。

C:\>cd \xyzzy\etc
C:\xyzzy\etc>perl xml2txt.pl

これで、xyzzy/etc/ フォルダに reference.txt が作成されます。

次に、info-modoki-mode を導入します。

1. info-modoki-mode を xyzzy/site-lisp/ フォルダに置く。

2. .xyzzy か siteinit.l に以下を追加する。

;;; info-modoki-mode
(require "info-modoki-mode")
(define-key ed::*lisp-mode-map* #\F1 'imm-refer-selection)
(define-key ed::*lisp-interaction-mode-map* #\F1 'imm-refer-selection)

あとは、lisp-mode (or lisp-interaction-mode) でキーワードにカーソルをおいて F1 すると、リファレンスの検索をします。 その他の機能については,info-modoki-mode.l 冒頭のコメント文を参照ください。

また、info-modoki-mode は、キーワードの色付けに Lisp キーワードファイル も使用します。


xml to html

reference.xml から HTML 版リファレンスを作成します。そのままでも便利だけれど、 やっぱり kazu.y さんの reference.l から使うととても幸せになれます。

とりあえず、HTML 版リファレンスを作成します。 M-x shell または、コマンドプロンプトから以下を実行します。 xml2html.pl をオプション無しで実行すると、フレーム版でない html が作成されます。 フレーム版なものをつくるには、xml2html.pl に -f オプションをつけて実行します。

C:\xyzzy\etc>perl xml2html.pl -f

これで、xyzzy/etc/html/ フォルダに HTML ファイルが作成されます。 作成された全ての HTML ファイルは、xyzzy/reference/ フォルダに移動しておきます。

次に、reference.l を導入します。

1. reference.l を xyzzy/site-lisp/ フォルダに置く。(必要に応じバイトコンパイルしておく。)

2. .xyzzy か siteinit.l に以下を追加する。

(load-library "reference")
(define-key ed::*lisp-mode-map* #\S-F1 'lookup-reference-selection)
(define-key ed::*lisp-interaction-mode-map* #\S-F1 'lookup-reference-selection)

これで、lisp-mode (or lisp-interaction-mode) でキーワードにカーソルをおいて S-F1 すると、HTML 版リファレンスの検索をしてくれます。 (F1 は info-modoki の説明で使ってしまったので、reference.l は、S-F1 にしています。)

できあががったリファレンスは、こんな感じ。→ [HTML版]


xml to info

reference.xml から info を作成すると、Yamamoto Shinji さんの info.l で使えるようになります。 須田さんの info.l でも良いはずです。

とりあえず、reference.info を作成します。 info ファイルを作成するには、一旦 ref2texi.pl で texi ファイルを作成した後、 Emacsen (Meadow, Emacs, XEmacs, etc...) または、 texinfotools で、info ファイルに変換します。

まず、reference.xml から reference.texi を作成します。

C:\xyzzy\etc>perl ref2texi.pl

これで、xyzzy/etc/info/ フォルダに、reference.texi が作成されます。
次に、reference.texi から info を作成します。

[ Emacsen を使用する場合 ]

  1. Emacsen で、作成した reference.texi を読み込む。
  2. M-x texinfo-format-buffer する。
  3. M-x save-buffer (C-x C-s) する。

[ texinfotools を使用する場合 ]

C:\xyzzy\etc>cd info
C:\xyzzy\etc\info>makeinfo --error-limit 0 --force reference.texi

これで、xyzzy/etc/info/ フォルダに、reference.info* が作成される。 出来上がった reference.info* は xyzzy/info/ フォルダに移動する。

次に、(Yamamoto Shinji さんの)info.l を導入します。

1. info.l を xyzzy/site-lisp/ フォルダに置く。

2. info.l をバイトコンパイルする。

3. .xyzzy か siteinit.l に以下を追加する。

(load-library "info")

4. xyzzy/info/ フォルダに、info-ja.info を置く。

5. xyzzy/info/ フォルダに dir という名前のファイルを作成し、以下の記述をしておく。

-*- Text -*-
This is the file .../info/dir, which contains the topmost node of the
Info hierarchy.  The first time you invoke Info you start off
looking at that node, which is (dir)Top.

File: dir, Node: Top

* Menu:

* (info-ja)::                   インフォじゃ :^)
* リファレンス: (reference).    xyzzy Reference 計画
      
※「File: dir, Node: Top」の前の行にもなんだか大切なものがあるようなので、 このままコピペするか、info.l の README にあるサンプルを編集するかして使ってください。

あとは、M-x info で使えます。

ちなみに info とは、ハイパーリンクテキストなインターフェイスを持った、 ドキュメント閲覧プログラム(説明がおかしい?)です。 リンク(多分色のついてるとこ)で Enter すると、そのページにジャンプします。 その他、主なコマンドは、こんなところと思います。

q終了
n次のノードに移動
p前のノードに移動
u1 つ上のノードに移動
tTopノードに移動
ddir(最初に表示されるノード)に移動
s検索
hヘルプ

info を使うのなら、 逸見さんの info も揃えておくと便利です。アーカイブから展開したファイル henmi を henmi.info にリネームし、 xyzzy/info/ に設置した後、xyzzy/info/dir に以下のような行を加えます。

* xyzzy info: (henmi).          逸見さんの info

xml to keyword

reference.xml から lisp のキーワードファイル lisp を作成します。

C:\xyzzy\etc>perl xml2kwd.pl

これで、xyzzy/etc/ フォルダに、lisp が作成されます。 このキーワードファイルを使って、キーワードの色付けに使うことができます。 キーワードの色付けは、こんな感じでしてます。


Others


リファレンスをメニューに追加

リファレンスを「ヘルプ」メニューに追加する。 ここでは、HTML Help (reference.chm), info , HTML 版リファレンスを追加している。

(add-hook '*init-app-menus-hook*
          #'(lambda ()
              (let ((help (get-menu *app-menu* 'ed::help)))
                (insert-menu-separator help 2)
                (insert-menu-item help 3 'reference "ヘルプ(&H)"
                                  #'(lambda () (interactive)
                                      (ed::html-help
                                       (merge-pathnames "etc/reference.chm"
                                                        (si:system-root))
                                       "")))
                (insert-menu-item help 4 'info "info(&I)" 'ed::info)
                (insert-menu-item help 5 'reference "reference(&R)"
                                  #'(lambda () (interactive)
                                      (shell-execute
                                       (map-slash-to-backslash
                                        (merge-pathnames "reference/index.html"
                                                         (si:system-root)))
                                       t))))))

更新履歴

[2004/11/27]
・reference.xml 20041115 版から作成したファイルに更新した。
・reference.txt の説明で info-modoki-mode を使うようにした。
[2003/07/06]
・reference.xml 20030705 版から作成したファイルに更新した。
・xml2html.pl, ref2texi.pl 中の section「Sequence」を「シーケンス」に変更した。
[2003/06/30]
・Reference HTML版 を Mozilla から閲覧すると,日本語まじりのアンカーに跳べなくなっていたため, xml2html.pl を修正した(xml2xxx.lzh 2003.06.30版)。おまけで xml2fortune.pl もいれた。
[2003/06/10]
・reference.xml の設置場所が etc ディレクトリになったのに合わせ、記述を変更した。(やっと)
・変換スクリプトや reference.txt も etc ディレクトリに置くようにしてみた。
[2003/05/05]
・reference.xml 20030430 版から作成したファイルに更新した。
・「リファレンスをメニューに追加」を少し変更。reference.chm のパスを直接指定するようにした。
[2003/04/27]
・xml2txt.pl, ref2texi.pl, xml2kwd.pl も Perl 5.8 で動作するようにしてみた。 ついでに変換したデータを一つにまとめて NetInstaller に対応させてみた。
[2003/04/09]
・服部さんの許可を頂いて、怪しい xml2html.pl を載せておいた。
[2003/04/04]
・ref2hh.pl をみて、文字化けしないように sjis で出力できるようにしてみた xml2html.pl から作成した reference.html.lzh に差し替えた。多分中身は同じ(はず)と思う。
・「Others」に項目追加。
[2003/04/04]
・全項目において、標準的なファイルの配置にするように書き換えた。
・reference.chm, refer-for.l の紹介を追加した。
・「リファレンスをメニューに追加」に、reference.chm を追加した。
[2003/03/31]
・reference.xml 20030330 版から作成したファイルに更新した。
[2003/02/01]
・「リファレンスをメニューに追加」を追加した。
[2003/02/01]
・全面的に書き換えた。
・reference.xml から作成したものを見やすい場所に移した。
[2002/12/05]
・reference.xml から作成したものを 2002/11/23 版に差し替えた。


(^_^)