2023年3月13日月曜日

MHTML

私はhtmlが大好きです。
何か文章を書く際にはまずプレーンテキストを選択し、
それで不都合があるならhtmlをソースで記述します。
都合がいいごく簡単なcssテンプレートを自作していて、
章節番号を気にせずTeXっぽく書けるように工夫しています。
場合によってはmdにしたり、
何か制約事項があればMicrosoft Word等の
特定のアプリケーションを使いますが、
プレーンなテキストを汎用のテキストエディタ(vi含む)で
編集するのが私のスタイルです。

画像等を張り込むときも私にとってはhtmlがデフォルトですが、
困るのは一枚物の資料を静的にファイルとして配布するような時。
htmlファイルとjpeg画像ファイル等を一緒にしておかなければなりません。
多数のhtmlファイルを含み、互いをリンクさせたような大規模な文書なら、
zip形式でまとめて圧縮すれば取り回ししやすいのですが、
中途半端なやつが取り扱いに困るんですよね。

で、最近知ったのがmhtml。
"MIME Encapsulation of Aggregate HTML"なる形式で、
あるhtmlに貼り込んであるあらゆるファイル(画像やcss)を
MIME技術で単独のファイルにまとめ、
そのファイルのみで完全にhtml文書を再現できるようにしたものです。
なおMIMEはeメールで利用されているおなじみの
"Multipurpose Internet Mail Extensions"のことです。
かなり昔からある規格のようですが、私は最近その存在を知りました。
ちなみにWordやExcelではファイル保存時に
"mhtml"(または"mht")形式を指定することで
mhtmlに書き出すことができます。
Chromeブラウザならページ保存時に[ウェブページ、1つのファイル]を
指定することでmhtmlを得られます。
得られたmhtmlはChromeで普通に開けます。

で、その中身を見てみるとプレーンテキストで、
1つのファイルをhttp 1.1で送受信するデータ構成に準じた、
テキスト形式のヘッダ(オリジナルのURL含む) + 空行 + コンテンツ
(バイナリならbase64でテキスト化)にデータ化し、
それらを区切り文字列で区切って必要なファイルを全て含んだ
1つのファイルにし、MIMEのヘッダを付けている感じになっています。
なるほどいい感じ。

しかしこれのソースをテキストエディタで手書きするのは辛い。
高機能なコンテンツ作成アプリケーション(Wordとか)の
出力フォーマットのバリエーションぐらいに考えた方が良さそう。
これまでどおりプレーンテキストやhtmlのソースを
生で打つのをデフォルトとし、画像入りのhtmlを
単体で配布するようなときにmhtml化する程度にしておきます。

0 件のコメント:

コメントを投稿