
ihtml は、「ISO-HTML又はXHTML 1.1の文書を作るのにちょっと便利な小物」を目指して製作してゐる、xyzzyで動くLISPです。
β版です。恐らくファイルを破壊することは無いと思ひますが、自己責任で。無限ループに陥ったらC-g (Ctrl + g)でquitしてください。
書庫に含まれる全てのファイルに於いて、私、空拇が作った部分は、著作権抛棄とします。(CC0です)
License: CC0 (Please feel free to reproduce or edit, except quotation.)
(require "ihtml")(setq *ihtml-xhtml11* t)(require "ihtml-menu")インライン要素: 文字列を範囲選択してから、キー操作又は右クリック操作でマークアップします。<img>などの空要素は、範囲選択は不要で、そのままカーソル位置に挿入できます。
ブロック・リスト要素: マークアップ操作を行ふと、カーソルが行末に無くても、その行全体がマークアップされ、次の行に移ります。
次に、ihtml特有の機能について述べます。
<a href="...">が相対パスで生成されます。*.png等、*ihtml-img-extensions*で判断)をドロップすると、<img>が挿入されます。その際、alt文字列の入力を促されます。<h2>がある時にC-+を押すと、その行が<h3>でマークアップされます。<p>でマークアップします。<li>でマークアップします。<br>を挿入しつつ改行します。class、id、title属性を一括で修正できます。右クリックメニューから「Attributes」⇒「core」と選んでも同じです。<>&"」の4文字がそれぞれ「<>&"」に変ります。「unescape」は逆の動作です。<ins>と<del>はdatetime属性を自動で振ります。dir、rel)では補完が効きます。<br />といった形で挿入されます。idの駄目文字判定(最初の文字に数字は許されない等)は未実装です。*ihtml-imgs*を*ihtml-img-extensions*に改名。(中身は同じ)*ihtml-xhtml11*のtとnilを切り替へる函数ihtml-toggle-xhtml11を追加。ihtml-markup-line: *ihtml-line-break*がnilの時は、改行しないで次の行に移る様にした。(HTML化する前のテキストを、行ごとにマークアップする時に便利)*ihtml-line-break*のtとnilを切り替へる函数ihtml-toggle-line-breakを追加。ihtml-comment: 選択範囲内に「<!--」「-->」がある場合は全部削除し、一つもない場合は選択範囲をコメント化する様に挙動を変更。(選択範囲が無い場合は今までと同じ挙動)ihtml-completing-markup: *ihtml-xhtml11*がtの時は、XHTML 1.1の要素を補完する様にした。*ihtml-tags*: <fieldset>が抜けてゐたので追加。ihtml-markup、ihtml-markup-empty: 属性リストattrの属性リスト値にnilが与へられた時は、HTML属性値を省略する様にした。例: (ihtml-markup-empty "input" '("type" "checkbox" "checked" nil)) => <input type="checkbox" checked>ihtml-set-attribute: 補完入力も可能な様に改造。ihtml-attr-bdoで使用。ihtml-escape、ihtml-unescape: nilを受け取ると、エラーではなくnilを返す様に変更。(ihtml-markupの(mapcar #'ihtml-auto-escape attr)で、attrの属性リスト値がnilでもエラーにならない様に)