一般に GNOMEヘルプ>カスタムMIMEの追加)で説明されているように、*.htm
ファイルを*.html
(MIMEタイプtext/html
)とは異なるアプリケーションで開くようにしようとしています。すべてのユーザーのタイプ 。 /usr/share/mime/packages/htm.xml
を作成しました:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-html-notepad">
<sub-class-of type="text/html"/>
<comment>HTML Notepad</comment>
<glob pattern="*.htm"/>
</mime-type>
</mime-info>
ルートとしてデスクトップデータベースを更新しました(update-mime-database /usr/share/mime
)。上記の定義に影響がないかのように、*.htm
拡張子が付いたHTMLファイルの組み込みHTML MIMEタイプが引き続き表示されます(<sub-class-of>
を削除しても違いはありません)。
$ gio info saved-web-page.htm | grep standard::content-type
standard::content-type: text/html
ファイルにHTMLがない場合でも、カスタムMIMEタイプの定義は無視されます。
$ touch empty-file.htm
$ gio info empty-file.htm | grep standard::content-type
standard::content-type: text/plain
何を逃したの?私はGNOME 3.28.2/Ubuntu 18.04を使用しています。
EDIT:私はそれ以来、別のフォーラムでより根本的に質問を言いました: MIMEタイプtext/html:定義方法と定義場所
OPへのコメントで確立されているように、text/html
MIMEタイプは/usr/share/mime/packages/freedesktop.org.xml
で定義されています。これは、ローカルMIMEフォルダーtext/html
に~/.local/share/mime/packages
の新しい定義を配置することにより、ユーザーが上書きできます。
上記のファイルのXMLには次の行があるため、このMIMEタイプは2つのターゲットファイル拡張子に適用される可能性があります。
<mime-type type="text/html">
...
<glob pattern="*.html"/>
<glob pattern="*.htm"/>
</mime-type>
したがって、次のようなファイル~/.local/share/mime/packages/html-split.xml
を作成することにより、拡張子に応じて2つのMIMEタイプを分割することができました。
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/html">
<comment>HTML document</comment>
... INCLUDING EVERYTHING UP UNTIL <glob> FROM THE OLD DEFINITION ...
<glob pattern="*.html"/>
</mime-type>
<mime-type type="application/x-html-notepad">
<sub-class-of type="text/html"/>
<comment>HTML Notepad</comment>
<glob pattern="*.htm"/>
</mime-type>
</mime-info>
私がテストしていないもの:<magic>
のXML定義に残っているtext/html
セクションでパターンが一致するため、MIMEタイプapplication/x-html-notepad
が*.htm
ファイルに適用されない場合があります。したがって、<magic>
タグ、特にそのpriority=
属性に関するコメントは、ここで歓迎されます。