[HOME] > PC-UNIX Tips > psgml

psgml

Created: 2005.03.13

PC-UNIX Tips

環境

OS:
FreeBSD 4.4-RELEASE
Mule;
Mule Version 2.3(GNU Emacs 19.34.1)
psgml:
psgml-1.2.5

インストール

最近やっとXHTMLを理解しようと勉強を始めました。で、まずはmule-2.3で利用可能 なXHTML編集モードを探したところ、psgmlってのを見付けました。日本語での情報も ままありそうで、これがスタンダードっぽいみたい。

ダウンロード

configure for mule

インストールの前に、標準では、 emacs を前提としているので、 configure の ファイルを mule 用にちょっぴり変更。

configure

% 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"
	

config.cache

% 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ファイルのコピー

もひとつおまけに、ローカルディスク内にDTDも必要。こちらも適当なディレクトリを 作成してコピー。

# cd /usr/local/lib/psgml
# fetch http://www.w3.org/TR/xhtml11/DTD/xhtml11-flat.dtd
...
xhtml11-flat.dtd ダウンロード
#
	

$HOME/.emacs設定

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 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-UNIXPSGMLモードを使う のページを御覧ください。簡潔にまとめられています :-)

PC-UNIX Tips

Written by kabada