Как открыть * .htm иначе, чем * .html?

Я пытаюсь открыть *.htm файлы в другом приложении, отличном от *.html (MIME-тип text/html), как обычно описано в Справка GNOME> Добавить пользовательский тип MIME для всех пользователей. . Я создал /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>

и обновил базу данных рабочего стола как root (update-mime-database /usr/share/mime). Он по-прежнему показывает встроенный тип HTML MIME для файла HTML с расширением *.htm, как если бы вышеприведенное определение не имело никакого эффекта (удаление <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.

РЕДАКТИРОВАТЬ: С тех пор я сформулировал вопрос более фундаментально здесь на другом форуме: MIME-тип text / html: как и где определен?

2
задан 2 August 2019 в 14:41

1 ответ

Как установлено в комментариях к OP, text/html Тип MIME определяется в /usr/share/mime/packages/freedesktop.org.xml. Это может быть переопределено пользователем путем размещения нового определения text/html в локальной папке MIME ~/.local/share/mime/packages.

Этот тип MIME может быть применен к двум расширениям конечного файла из-за этих строк XML в файле выше:

  <mime-type type="text/html">
    ...
    <glob pattern="*.html"/>
    <glob pattern="*.htm"/>
  </mime-type>

Таким образом, я смог разделить два типа MIME согласно расширению путем создания файла ~/.local/share/mime/packages/html-split.xml сходство с этим:

<?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
ответ дан 2 December 2019 в 06:03

Другие вопросы по тегам:

Похожие вопросы: