web-dev-qa-db-ja.com

* .htmを* .htmlとは異なる方法で開くには?

一般に 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:定義方法と定義場所

2
rphair

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=属性に関するコメントは、ここで歓迎されます。

0
rphair