[HOME] > PC-UNIX Tips > psgml
Created: 2005.03.13
PC-UNIX Tips
最近やっとXHTMLを理解しようと勉強を始めました。で、まずはmule-2.3で利用可能 なXHTML編集モードを探したところ、psgmlってのを見付けました。日本語での情報も ままありそうで、これがスタンダードっぽいみたい。
インストールの前に、標準では、 emacs を前提としているので、 configure の ファイルを mule 用にちょっぴり変更。
% cd /usr/local/src/psgml-1.2.5
% cp -p configure configure.org
% vi configure
% diff configure.org configure
693c693
< lispdir="\$(datadir)/emacs/site-lisp"
---
> lispdir="\$(datadir)/mule/site-lisp"
695,696c695,696
< if test -d $ac_default_prefix/share/emacs/site-lisp; then
< lispdir="\$(prefix)/share/emacs/site-lisp"
---
> if test -d $ac_default_prefix/share/mule/site-lisp; then
> lispdir="\$(prefix)/share/mule/site-lisp"
698,699c698,699
< if test -d $ac_default_prefix/lib/emacs/site-lisp; then
< lispdir="\$(prefix)/lib/emacs/site-lisp"
---
> if test -d $ac_default_prefix/lib/mule/site-lisp; then
> lispdir="\$(prefix)/lib/mule/site-lisp"
703,704c703,704
< if test -d $prefix/share/emacs/site-lisp; then
< lispdir="\$(prefix)/share/emacs/site-lisp"
---
> if test -d $prefix/share/mule/site-lisp; then
> lispdir="\$(prefix)/share/mule/site-lisp"
706,707c706,707
< if test -d $prefix/lib/emacs/site-lisp; then
< lispdir="\$(prefix)/lib/emacs/site-lisp"
---
> if test -d $prefix/lib/mule/site-lisp; then
> lispdir="\$(prefix)/lib/mule/site-lisp"
% cp -p config.cache config.cache.org
% vi config.cache
% diff config.cache.org config.cache
18c18
< ac_cv_path_EMACS=${ac_cv_path_EMACS='/usr/local/bin/emacs'}
---
> ac_cv_path_EMACS=${ac_cv_path_EMACS='/usr/local/bin/mule'}
%
% cd $SRC
% configure
...
% make
...
%
% su -
...
# make install
... /usr/local/share/mule/site-lisp/にインストール
そして設定です。
ローカルディスク内にカタログ(理解できてません)が必要。適当なディレクトリを 作成してコピー。
# mkdir /usr/local/lib/psgml
# cd /usr/local/lib/psgml
# cat > CATALOG
...
C.1. SGML Open Catalog Entry for XHTML 1.1 のカタログの内容を入力
もひとつおまけに、ローカルディスク内にDTDも必要。こちらも適当なディレクトリを 作成してコピー。
# cd /usr/local/lib/psgml
# fetch http://www.w3.org/TR/xhtml11/DTD/xhtml11-flat.dtd
...
xhtml11-flat.dtd ダウンロード
#
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; XHTMLモードの設定(psgml)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t)
;; XHTMLで編集する場合は、sgml-modeではなくxml-modeでpsgmlを使う
(autoload 'xml-mode "psgml" "Major mode to edit XML files." t)
;; .html, .xml でのxml-modeの自動起動
(setq auto-mode-alist (cons '("\\.html$" . xml-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.xml$" . xml-mode) auto-mode-alist))
;; CATALOGとECATの位置設定
(setq sgml-catalog-files
(append
'("CATALOG" "/usr/local/lib/psgml/CATALOG")))
;; C-c C-u C-d で挿入可能なDTDの設定
;; http://sakito.s2.xrea.com/moin/moin.cgi/psgml_2dmode
(setq sgml-custom-dtd
'(
("XHTML 1.1"
"<?xml version=\"1.1\" encoding=\"iso-2022-jp\"?>\n\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n")
))
;; その他
(setq sgml-auto-activate-dtd t)
(setq sgml-omittag-transparent t)
(setq sgml-balanced-tag-edit t)
(setq sgml-auto-insert-required-elements t)
(setq sgml-live-element-indicator t)
(setq sgml-indent-step nil)
(add-hook 'xml-mode-hook
(function
(lambda ()
;; タブは使わない
(make-variable-buffer-local 'indent-tabs-mode)
(setq indent-tabs-mode nil)
)))
使い方は、それいけ PC-UNIX のPSGMLモードを使う のページを御覧ください。簡潔にまとめられています :-)
PC-UNIX Tips
Written by kabada