Читаем fb2 с помощью Emacs
FictionBook — формат представления электронных версий книг в виде XML-документов, где каждый элемент книги описывается своими тегами. Стандарт призван обеспечить совместимость с любыми устройствами и форматами. В поисках читалки книг формата fb2, я наткнулся на много достаточно неплохих проектов под Linux, их можно выделить:
- FBReader
- colibre (хотя это больше, чем просто читалка)
Но мне не очень хотелось городить огород из разношёрстного софта и я задался вопросом, а можно ли просматривать fb2 с помощью Emacs. В сети нашёл несколько решений, но они были кривые и я решил их доработать и допилить под мои нужды. Зная немного Lisp и Emacs, решение практически нашлось сразу и заняло всего 15 минут.Я не стал заморачиваться с вложенными изображениями в формат ибо мне это ненужно (возможно позже допилю :) хотя особой нужды нет!)
Приступаем к красноглазию :)
- Добавляем строки в .emacs (если его нет в вашем домашнем каталоге , то создайте)
;Авто определение формата по расширению файла
(add-to-list 'auto-mode-alist '(".fb2$" . fb2-mode-view))
;Функция для файлов .fb2 в режиме просмотра
(defun fb2-mode-view()
(vc-toggle-read-only)
(interactive)
(sgml-mode)
(sgml-tags-invisible 0))
;Функция для файлов .fb2 в режиме редактирования
(defun fb2-mode-edit()
(vc-toggle-read-only nil)
(interactive)
(sgml-mode)
(sgml-tags-invisible 0))
- Запускаем Emacs
- Открываем файл fb2 с помощью С-x C-f или задать при запуске файл:
emacs book.fb2
Функции для работы с FictionBook:
Чтобы вызвать функцию в Emacs нажмите M-x
Вот так это выглядит
Как видно из скрина, то что нет разницы между заголовками и самим текстом, т.ч это не айс, но как я говорил выше, то меня это не напрегает. Возможно я сделаю чуть позже всё "как надо", но это уже зависит от моей лени :D

1 ноября 2025 / 19:12
Просто знать – этого недостаточно.
Надо применять. Желать – этого недостаточно.
Надо делать
По теме.