Я пытаюсь открыть *.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: как и где определен?
Как установлено в комментариях к 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=
припишите, будет приветствоваться здесь.