\def\lang{jp} % -*- texinfo -*- for Texinfo V.3.1 
\input texinfo
@setfilename yahtmlj
@settitle Yet Another html-mode for Emacs

@iftex
@c @syncodeindex fn cp
@c Last modified Fri Mar  1 16:16:33 2002 on firestorm
@syncodeindex vr cp
@end iftex

@titlepage
@sp 10
@center
@subtitle Yet Another html-mode for emacs
@title 『HTML屋』
@subtitle // yahtml //
@author @copyright{} 1994-1997 by    HIROSE, Yuuji [yuuji@@yatex.org]
@end titlepage

@node Top, Intro, (dir), (dir)
@comment  node-name,  next,  previous,  up

@menu
* Intro::                       はじめに
* Installation::                インストール
* Command Invocation::          外部コマンド起動
* Completion::                  補完入力
* Jump::                        カーソルジャンプ
* Changing and Deleting::       変更と削除
* CSS Support::                 スタイルシート補完
* Customizations::              カスタマイズ変数一覧
* Copying::                     とりあつかい
* Concept Index::               索引

@end menu

@node Intro, Installation, Top, Top
@comment  node-name,  next,  previous,  up
@chapter はじめに
@cindex Demacs
@cindex Mule
@cindex LaTeX
@cindex HTML屋[HTMLや]

yahtmlは GNU Emacs 上で HTML文書を作成する時に、繁雑なHTMLタグの入力を補
完機能によってスムーズに行えるようにするだけでなく、weblintなどの構文チェッ
クプログラム、カーソル位置のURLやファイル名に依存したブラウザ/イメージヴュー
アの起動などを Emacs 編集画面中から
行えるようにするパッケージです。

(このInfoは未完成です(__)…)

@node Installation, Command Invocation, Intro, Top
@comment  node-name,  next,  previous,  up
@chapter インストール
@menu
* yahtml起動のための設定::      
* lintプログラム/ブラウザ/イメージヴューア環境等の設定::  
* WWWページ環境用変数の設定::   
@end menu

@node yahtml起動のための設定, lintプログラム/ブラウザ/イメージヴューア環境等の設定, Installation, Installation
@section yahtml起動のための設定


@file{~/.emacs}に下の2項目を加えます。

@lisp
(setq auto-mode-alist
      (cons (cons "\\.html$" 'yahtml-mode) auto-mode-alist))
(autoload 'yahtml-mode "yahtml" "Yet Another HTML mode" t)
@end lisp

次にyahtmlに必要なファイル(@file{yahtml.el}, @file{yatexlib.el},
@file{yatexprc.el}) を置くディレクトリを load-path に加えます。たとえば、 
@file{~/src/emacs/yahtml}に置くのであれば、

@lisp
(setq load-path (cons (expand-file-name "~/src/emacs/yahtml") load-path))
@end lisp

@noindent 
などとします。

  以上の設定により、拡張子が .html であるファイルを編集すると自動的に
yahtml がロードされます。yahtmlが正常に起動できたときはモードラインの表示が
「yahtml」に変わります。

@node lintプログラム/ブラウザ/イメージヴューア環境等の設定, WWWページ環境用変数の設定, yahtml起動のための設定, Installation
@section lintプログラム/ブラウザ/イメージヴューア環境等の設定

利用する外部プログラムなどに関する以下の変数を確認し、必要なら正しい値に変
更します(括弧内はデフォルト値)。
@table @code
@item yahtml-www-browser
        @dots{} 起動するブラウザのコマンド名(netscape)
@item yahtml-image-viewer
        @dots{} 起動する画像ビューアのコマンド名(xv)
@item yahtml-lint-program
        @dots{} 構文チェックプログラムのコマンド名(jweblint)
@item yahtml-kanji-code
        @dots{} htmlファイルの漢字コード
@end table

@node WWWページ環境用変数の設定,  , lintプログラム/ブラウザ/イメージヴューア環境等の設定, Installation
@section WWWページ環境用変数の設定

ホームページとなるファイルが存在するPATH名に関する変数を設定します。
@table @code
@item yahtml-path-url-alist
        @dots{} ファイルシステム上のPATH名と、URLの対応表
@item yahtml-directory-index
        @dots{} URL指定でファイル名を省略したときに表示されるインデックス
                ファイル名(NCSA系httpdなら @file{index.html}, CERN系なら
                @file{Welcome.html}が一般的)
@end table

変数 @code{yahtml-path-url-alist} の設定例を示します。例えば、自宅では、
@file{/home/yuuji/http/} が @code{http://localhost/~yuuji} で参照でき、職
場では @file{/usr/home/yuuji/www/} が@code{http://www.keio.ac.jp/~yuuji/} 
で参照できるようになっている場合は以下のように設定します。

@lisp
(setq yahtml-path-url-alist
      '(("/home/yuuj/http" . "http://localhost/~yuuji")
        ("/usr/home/yuuj/www" . "http://www.keio.ac.jp/~yuuji")))
@end lisp

この対応組はいくらでも設定することができます。

@node Command Invocation, Completion, Installation, Top
@comment  node-name,  next,  previous,  up
@chapter 外部コマンド起動

HTMLファイル編集にかかわるいくつかのコマンドを即座に呼ぶことができます。
@table @kbd
@item [prefix] t j
        @dots{} HTML構文チェッカ(jweblint)起動
@item [prefix] t p
        @dots{} 現在のページを対象としたブラウザ起動
@item [prefix] t r
        @dots{} 現在のページがブラウザに表示されているときのreload指定
@end table

@node Completion, Jump, Command Invocation, Top
@comment  node-name,  next,  previous,  up
@chapter 補完入力

「野鳥」で利用できる、「begin型補完」、「section型補完」、
「large型補完」、「maketitle型補完」、「アクセント補完」
と全く同じキー操作で対応する
HTMLタグの補完入力ができます。それぞれの型の補完は順に、
「複数行に渡るタグ入力」、「空要素タグ(imgなど)の補完」、
「一行内での開始/終了タグの入力」、「空要素空属性タグの入力」、
「文字参照入力」
に
対応しています。具体的には

@table @kbd
@item [prefix] b (野鳥のbegin補完に対応)
@dots{}
@example
<ul>
</ul>
@end example

@noindent
のように開始タグと終了タグを二行に渡って書きたい場合の補完を指します。
おもにブロック型タグが補完候補に含まれます。

@item [prefix] s (野鳥のsection型補完に対応)
@dots{}
@example
<img src="foo.gif" alt="photo">
@end example

@noindent
のように終了タグを持たず、かつ属性値のみで機能を指定するタグを補完します。
補完候補としては、img, input が存在します。

@item [prefix] l (野鳥のlarge型補完に対応)
@dots{} begin型補完とほぼ同じですが、

@example
<big> 〜 </big>
@end example

@noindent
のように一行内に開始/終了タグを入れたいときに利用します。

@item [prefix] m (野鳥のmaketitle型補完に対応)
@dots{} 要素も属性値も持たないタグを補完入力します。<br> 
などが補完候補に相当します。

@item [prefix] a (野鳥のアクセント補完に対応)
@dots{} エンティティ参照による文字表記を入力するときに用います。
デフォルトでは < (&lt;), > (&gt;), & (&amp;), " (&quot;), ' (&apos;),
ブランク (&nbsp;) の補完入力が行えます。
@end table

@node Jump, Changing and Deleting, Completion, Top
@comment  node-name,  next,  previous,  up
@chapter カーソルジャンプ
文書中のいろいろな場所で

@table @kbd
@item [prefix] g
        @dots{} 対応するオブジェクトにジャンプ
@end table

@noindent 
を押すことにより、カーソル位置のHTML構文に対応する場所にジャンプ
します。対応関係が存在すると解釈されるコマンドには以下のものがあります。

@itemize @bullet
@item @code{<TAG>} ←→ @code{</TAG>}
@item @code{<img src="画像ファイル">} → 対応するviewer起動
@item @code{<a href="リンク先">} → リンク先へのポイント移動
@item @code{<applet code="プログラム">} → Javaソースプログラムへの移動
@c @item @code{\include(\input)} → 対応するファイル
@end itemize

@node Changing and Deleting, CSS Support, Jump, Top
@comment  node-name,  next,  previous,  up
@chapter 変更/削除

@menu
* 対タグの変更::                
* 文字参照への変更::            
* リジョン内文字のURLencode::   
@end menu

@node 対タグの変更, 文字参照への変更, Changing and Deleting, Changing and Deleting
@comment  node-name,  next,  previous,  up
@section 対タグの変更
文書中のいろいろな場所で

@table @kbd
@item [prefix] c
        @dots{} 対応するタグ等を変更
@end table

@noindent 
を押すことにより、カーソル位置のHTML構文に応じた
記述内容の変更を行います。カーソル位置と変更する内容の
対応は以下の通りです。

@itemize @bullet
@item @code{<TAG>}〜@code{</TAG>}
@dots{} @code{TAG} の変更
@item @code{<img src="画像ファイル" alt="photo">} などの属性値
@dots{} 属性値の変更
@end itemize

@node 文字参照への変更, リジョン内文字のURLencode, 対タグの変更, Changing and Deleting
@comment  node-name,  next,  previous,  up
@section 文字参照への変更
文字としての < や > を表現するときは、文字参照を用いて
&lt; や &gt; と表記する必要がありますが、
HTML以外のファイルからこれらの文字を含むテキストを張り込んだ場合
などに、これらの文字を一括して文字参照形式に変換できます。

@table @kbd
@item [prefix] ;
        @dots{} 指定した領域の文字参照に置き換えるべき文字の置換
@item [prefix] :
        @dots{} 指定した領域の文字参照を参照文字そのものに置換
        ([prefix] ; の逆変換)
@end table


@node リジョン内文字のURLencode,  , 文字参照への変更, Changing and Deleting
@comment  node-name,  next,  previous,  up
@section リジョン内文字のURLencode
@table
 @item [prefix] #
	@dots{} 指定した領域内に URLencode すべき文字があればそれらを
        エンコード表記に置換。
@end table

@node CSS Support, Customizations, Changing and Deleting, Top
@comment  node-name,  next,  previous,  up
@chapter CSS(スタイルシート)サポート

@menu
* CSS-class completion::        
* Reread CSS file::             
@end menu

@node CSS-class completion, Reread CSS file, CSS Support, CSS Support
@comment  node-name,  next,  previous,  up
@section CSSクラス名補完
HTML屋はCSS(Cascading Style Sheets)のクラス名を補完入力することができます。
スタイル定義として

@display
 h1.foo, h2.foo @{ background-color: 0xffffff; @}
 h1.bar, h2.bar @{ font-size: 120%; @}
@end display

のようなものがあった場合に、h1またはh2タグを [prefix] b や [prefix] l で補
完入力した場合に、それらに有効な class 名である foo, bar を候補として補完
入力することが可能です。また

@display
 .caution @{ font-size: 120%; background-color: 0xc00000;@}
@end display

のような全てのエレメントに働くclassが定義されていた場合は、全てのタグの補
完入力時にclass参照入力を求められます。これが煩わしい場合はエレメント名入
力確定のときにリターンキー(またはC-m)ではなく、C-jを押せばclass補完入力を
キャンセルできます。たとえば

@display
 @kbd{[prefix] l}                    行内タグ補完を起動
    (または@kbd{[prefix] l SPC})
 tt                                  <tt></tt>をいれたいのでttと入力
 @kbd{C-m}
@end display

とした場合は続いて class= と補完プロンプトが出ますが、

@display
 @kbd{[prefix] l}                    行内タグ補完を起動
    (または@kbd{[prefix] l SPC})
 tt                                  <tt></tt>をいれたいのでttと入力
 @kbd{C-j}
@end display

と最後を @kbd{C-j} で入力した場合は class 補完プロンプトは出ません。

@node Reread CSS file,  , CSS-class completion, CSS Support
@comment  node-name,  next,  previous,  up
@section CSS定義ファイルの読み直し
htmlファイルを編集中にCSS定義ファイルを修正し、追加した
classを補完候補として直ちに読み込ませたい場合は、
@kbd{M-x yahtml-mode} として再起動を行ってください。

@node Customizations, Copying, CSS Support, Top
@comment  node-name,  next,  previous,  up
@chapter カスタマイズ
@cindex カスタマイズ[かすたまいす]
@cindex キーアサイン[きいあさいん]

yahtmlの動作を制御する変数について説明します。

@menu
* All customizable variables::  カスタマイズ変数一覧
* Hook variables::              hook変数
@end menu

@node All customizable variables, Hook variables, Customizations, Customizations
@comment  node-name,  next,  previous,  up
@section カスタマイズ変数一覧

@defvar yahtml-prefix
yahtml-mode 中のプリフィクスキー (@kbd{\C-c})
@end defvar

@defvar yahtml-image-viewer
imgで参照している画像ファイルを表示するときに起動するコマンド (xv)
@end defvar

@defvar yahtml-www-browser
@kbd{[prefix]g} で外部ページを表示するときに起動するブラウザ (netscape)
@end defvar

@defvar yahtml-kanji-code
デフォルトの漢字コード。1=sjis, 2=jis, 3=euc (2)
.htaccess ファイルに
@quotation
 AddType "text/html; charset=xxx" .html
@end quotation
の記述があった場合はそれに従う
@end defvar

@defvar yahtml-fill-column
auto-fillするときのカラム数 (72)
@end defvar

@defvar yahtml-fill-prefix
yahtml-mode 固有のfill-prefix (@code{nil})
@end defvar

@defvar yahtml-path-url-alist
OSのファイルシステム上でのフルパス名と、その外部公開時のURLの対応表。
@end defvar

@defvar yahtml-directory-index
サーバアクセス時ファイル名を省略したときにデフォルトで開かれる
インデックスファイルの名前。多くの場合 index.html。(@code{"index.html"})
@end defvar

@defvar yahtml-lint-program
HTML構文チェックプログラム。(@code{"jweblint"})
@end defvar

@defvar yahtml-hate-too-deep-indentation
ネストした列挙系環境でのインデントが深すぎるときにtにする。(@code{nil})
@end defvar

@defvar yahtml-always-/p
@code{<p>} をいれたら必ず @code{</p>} したい人向け。@code{nil}
@end defvar

@defvar yahtml-p-prefered-env-regexp
自動的に @code{<p>} を入れて欲しい環境。
(@code{"^\\(body\\|dl\\|blockquote\\)"})
@end defvar

@defvar yahtml-template-file
新規HTMLファイル作成時に自動的に挿入して欲しいファイル名。
@file{"~/http/template.html"}
@end defvar

@defvar yahtml-prefer-upcases
タグに大文字を使いたい。@code{nil}
@end defvar

@defvar yahtml-prefer-upcase-attributes
属性指定子に大文字を使いたい。@code{nil}
@end defvar

@defvar yahtml-server-type
Apache系のサーバを利用している場合は 'apache をセットする。
./.htaccess を参照するかどうかを決定する。@code{'apache}
@end defvar

@defvar yahtml-apache-access-file
@code{yahtml-server-type} が @code{'apache} のときに
アクセス制限ファイル名を指定。@file{".htaccess"}
@end defvar

@defvar yahtml-shell-command-option
シェルで別コマンドを起動するときのオプション。
@end defvar

@defvar yahtml-translate-hyphens-when-comment-region
領域コメントアウトをするときに既に存在するハイフンを @code{&#45;} に
変更するかどうか。(@code{t})
@end defvar

@defvar yahtml-entity-reference-chars-alist
エンティティ参照(Entity Reference)で記述すべき文字群を
 @code{'(?文字 . "エンティティ表記")}  という形式を列挙した
alistで並べる。デフォルトで @code{<}, @code{>}, @code{&}, @code{'}, 
@code{"} に対するalistが設定されているので、追加したい分だけを記述すれば良
い。cdr部 @code{"エンティティ表記"} は、先頭の @code{&} と 末尾の@code{;}
は含めずに書く。
@end defvar

@defvar yahtml-faithful-to-htmllint
構文チェッカとして htmllint を利用する場合ちょっとした余計な空白などに
対しても警告を示すので、これを回避するときにはこの変数を@code{t}に
する。
@end defvar

@defvar yahtml-use-css
CSSの補完機能を使うかどうか (@code{t})
@end defvar

@defvar yahtml-image-inspection-bytes
画像ファイルのサイズを調べるときに読み込むバイト数 (@code{10000})
@end defvar

@defvar yahtml:img-default-alt-format
<img src...>のALT属性のデフォルト文字列の書式。%xは画像の幅、
%yは画像の高さ、%sはファイルサイズに置換される (@code{"%xx%y(%sbytes)"})
@end defvar

@defvar yahtml-escape-chars
href補完などのときに予約文字をURLエンコードするか;
'askのときは確認してから置換する (@code{'ask})
@end defvar

@defvar yahtml-use-font-lock
ソースの色づけパッケージとして font-lock を利用するか
(@code{(featurep 'font-lock)})
@end defvar

@defvar yahtml-use-hilit19
ソースの色づけパッケージとして hilit19 を利用するか
(@code{(featurep 'hilit19)})
@end defvar

@defvar yahtml-indentation-boundary
インデント計算を打ち切ってよい境界となる正規表現
(@code{"^\\s *<h[1-3]>"})
@end defvar

@node Hook variables,  , All customizable variables, Customizations
@comment  node-name,  next,  previous,  up
@section hook変数


@node Copying, Concept Index, Customizations, Top
@comment  node-name,  next,  previous,  up
@chapter 取り扱い

  本プログラムはフリーソフトウェアです。本プログラムを使用して生じたいかな
る結果に対しても作者は責任を負わないこととします。転載等に関しては制限いた
しません。常識的に扱ってください。また、使用している旨をメイルでお知らせい
ただくと、作者は喜んでサポートに励むことでしょう。

  苦情、希望、バグ報告、感想等は歓迎いたします。
連絡は yuuji@@yatex.org まで(2000年12月現在)。
継続的に使用してくださる方はメイリングリスト「fj野鳥の会」に
是非加入してください。加入方法については本パッケージの @file{docs/htmlqa}
ファイルの「その他」の章を御覧ください。

仕様は、予告なく確実に(気分次第で)変更されます:-p。

@flushright
広瀬雄二
@end flushright


@node    Concept Index,  , Copying, Top
@comment node-name, next, previous, up
@unnumbered 索引
@printindex cp


@contents

@bye

@c Local Variables:
@c fill-column: 74
@c fill-prefix: nil
@c buffer-file-coding-system: sjis-dos
@c End:

Tag table:

End tag table
