Читаем 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

fb2-mode-view - функция для просмотра FictionBook (fb2), только чтение.
fb2-mode-edit - функция для просмотра FictionBook (fb2), с возможностью редакирования.
По умолчанию (по авто определению) запускается режим fb2-mode-view

Вот так это выглядит

Как видно из скрина, то что нет разницы между заголовками и самим текстом, т.ч это не айс, но как я говорил выше, то меня это не напрегает. Возможно я сделаю чуть позже всё "как надо", но это уже зависит от моей лени :D

Статья в Википедии про формат fb2

Теги: , ,

Дата: 8 декабря 2010

Автор: ignusius

Комментарии: 0

Оставить комментарий

*

Комментарий:

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

Разрешенные HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>