define('DISALLOW_FILE_EDIT', true); define('DISALLOW_FILE_MODS', true); /dev/head — Читаем fb2 с помощью Emacs

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

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

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

  1. Ситуация аховая — человек в запое уже много дней. Скорая не справляется — нужна срочная госпитализация. Повезло найти стационар. Оказывается, работает профессиональный стационар. Медперсонал круглосуточно на месте. Капельницы и инфузии — профессионально. Конфиденциально. Палаты комфортные. стационар вывод из запоя [url=https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara12.ru]https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara12.ru[/url] На сайте подробности. Родственника положили — реально помогли. После лечения сразу легче. И что радует — без срывов. Не откладывайте. Время не ждёт. Кто ищет стационар — не бойтесь. Выход есть всегда!

  2. Отчаяние полное — близкий совсем спился. Скорая не помогает — нужно серьёзное лечение. Друзья посоветовали. Работает вывод из запоя в стационаре. Медперсонал круглосуточно. Капельницы и терапия — профессионально. Никто не узнает. Внимание и забота. выход из запоя в стационаре [url=https://detoks.vyvod-iz-zapoya-v-stacionare-samara11.ru]https://detoks.vyvod-iz-zapoya-v-stacionare-samara11.ru[/url] Все условия работы. Родственника положили — без обмана. Человек приходит в себя. И что важно — с реабилитацией. Не откладывайте. Здоровье — это главное. Кому нужна срочная помощь — советую. Держитесь!

  3. Ситуация аховая — родственник на грани срыва. Никто не может вывести — требуется серьёзное лечение. Узнали хорошее место. Можно лечь в клинику. Врачи постоянно наблюдают. Инфузионная терапия — под строгим контролем. Никто не узнает. Палаты комфортные. вывод из запоя в клинике самара [url=https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara12.ru]вывод из запоя в клинике самара[/url] Все условия работы. Проверили на себе — врачи высший класс. После лечения сразу легче. И главное — с поддержкой. Действуйте сразу. Время не ждёт. Кому нужна срочная помощь — обращайтесь. Держитесь!

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

*

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

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

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

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