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

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

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

  1. efectele pastilei cialis [url=https://omgcialis.com/]how much is tadalafil[/url] cialis lekarna

  2. pengalaman ml pake cialis [url=https://omgcialis.com/]how much is cialis for daily use[/url] beda viagra cialis levitra

  3. [url=https://sinrecetaes.com]venta de viagra sin receta[/url]

  4. [url=https://haelanclomid.com]when to take clomid[/url]

  5. hydroxichloraquin https://plaquenilx.com/# hydrocloquin

  6. kamagra price [url=https://kamagraday.com]sildenafil pills 100mg[/url]
    https://kamagraday.com sildenafil pills in india

  7. [url=https://vidalistahim.com/]vidalista 80[/url] http://ivermectinhum.com ivermectin 3 mg for humans

  8. [url=https://wardenafil.com]best price for levitra 20mg[/url]

  9. where to get hydroxychloroquine https://plaquenilx.com/# what is hydroxychlor 200 mg used for

  10. viagra with dapoxetine free delivery in europe
    lasix online order
    buy bactroban nasal spray DIT pruMn

  11. cialis free prescription
    furosemide 20 tablet
    generic viagra 200 mg-india DIT pruMn

  12. augmentin 250 125 mg tablet
    augmentin buy
    over the counter augmentin DIT pruMn

  13. amoxicillin over the counter in canada
    where to buy amoxil
    amoxil coupon DIT pruMn

  14. viagra without doctor visit [url=http://prescriptionhim.com]viagra with no prescrition[/url]
    https://prescriptionhim.com generic viagra without a doctor

  15. [url=http://himshairloss.com]propecia tablet in india[/url]

  16. amoxicillin for sale canada
    amoxicillin 2000 mg
    amoxicillin buy australia DIT pruMn

  17. hydroxychloroquine hcq https://plaquenilx.com/# hcqs pill

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

*

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

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

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

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