KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Прочая околокомпьтерная литература » Михаил Кондратович - Создание электронных книг в формате FictionBook 2.1: практическое руководство (pre-release)

Михаил Кондратович - Создание электронных книг в формате FictionBook 2.1: практическое руководство (pre-release)

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Михаил Кондратович, "Создание электронных книг в формате FictionBook 2.1: практическое руководство (pre-release)" бесплатно, без регистрации.
Перейти на страницу:

Рассмотрим использование регулярных выражений на примере достаточно сложной, но часто встречающейся задачи — замены компьютерных кавычек «""» на типографские „«»“.

Основная проблема здесь в том, что открывающие и закрывающие компьютерные кавычки одинаковы. Поэтому приходится ориентироваться по символам, расположенным рядом.

Обычным способом придется вызывать команду поисказамены не менее десяти раз, рискуя что-то забыть или перепутать. Регулярные выражения позволяют произвести все замены за четыре захода.

Для начала примем за аксиому, что кавычка, расположенная в самом начале абзаца — открывающая, а в самом конце — закрывающая.

Вызываем команду EditReplace.

В поле поиска «Find what:» вводим конструкцию для поиска:

^"

В поле замены «Replace with:» вводим конструкцию замены. В этом случае она совсем простая:

«

Не забыв установить флажок «Regular expression», нажимаем кнопку«Replace All».

Аналогично, для кавычки в конце абзаца конструкции поиска и замены будут:

"$

и

»

Выражения «^» и «$» называются литералами и обозначают начало и конец строки соответственно. В конструкции замены они не нужны.

Теперь обработаем оставшиеся кавычки.

Начнем с открывающей кавычки. Перед ними обычно идет пробел. Ну, иногда еще дефис или скобка.

Конструкция для поиска будет такая:

([s(-])"

Конструкция замены:

$1«

В квадратных скобках мы перечислили символы, один из которых может идти перед искомой кавычкой. Литерал «s» обозначает пробельный символ. Символ «скобка» является зарезервированным, так как используется в самих конструкциях регулярных выражений, поэтому, чтобы искать его в тексте, мы отделили его косой чертой. Заключив все это в круглые скобки, мы образовали выражение, к которому будем обращаться из строки замены. И в конце непосредственно сама искомая кавычка.

Символ, который идет перед кавычкой, нужно оставить в неприкосновенности. Поэтому в поле замены вводится обращение к выражению в строке поиска — $1.

Теперь закрывающая кавычка. После нее могут идти: пробел, запятая, точка, закрывающая скобка, вопросительный знак, восклицательный знак, дефис, символ «многоточие».

Конструкция поиска:

(S)"([s!.)-…,?:;])

Конструкция замены:

$1»$2

Здесь используется два выражения. Первое означает, что перед закрывающей кавычкой должен идти НЕ пробел. Второе выражение содержит перечисление символов, которые могут идти после нее. Соответственно, в конструкции замены идет обращение к двум выражениям.

Напоследлк должен заострить ваше внимание, что в режиме исходника FB Editor регулярные выражения функционируют несколько по-другому. В частности, не получается использовать метасимвол «|», некорректно обрабатываются перечни, содержащие кириллицу.

§ 4.6 Использование скриптов 

Автор FB Editor предусмотрел расширение его возможностей при помощи Java Script.

Вызываются они из меню ToolsScripts[скрипт].

Первые девять скриптов можно вызывать клавишами Ctrl+1…9.

Документации, разумеется, не предусмотрено никакой. Во всем придется разбираться самостоятельно.

Поэтому, перед тем, как заняться написанием скриптов, необходимо проштудировать хороший справочник по функциям JavaScript с примерами.

Очень подробный справочник входит в состав MSDN Library. Много полезной информации можно найти также на W3SCHOOLS.

Из бумажных изданий могу посоветовать «JavaScript и DHTML: сборник рецептов» Дэнни Гудмана (доступна в Сети) и «Полный справочник по JavaScript» Фрица Шнайдера. Обе эти книги издавались на русском языке.

Если английский язык для вас не проблема, а средство общения, то на уже упоминавшемся www.flazx.com вы сможете бесплатно скачать множество руководств по JavaScript.  Среди них хочу особо выделить JavaScript: The Definitive Guide. Книга выдержала уже пять изданий.

Компактный и информативный справочник по JavaScript входил в состав редактора FB Writer (см. ниже)

В газетной публикации я приводил два простеньких скрипта собственного изготовления.

Здесь такой необходимости нет. Как пример, рекомендую посмотреть скрипты, написанные для FB Writer, моим земляком, известным на форуме FictionBook.org под ником Sclex.

Правда, тут есть одно маленькое, но очень вредное «но». Механически перенести наработки Sclex-а под FBE 1.0 не получится. Они жестко заточены под FB Writer и совместимый с ним FB Editor 2.0.

§ 4.7 Баги с нами!

Хотя FB Editor — довольно надежная и функциональная программа, он все-таки содержит несколько неприятных ошибок.

Вот, к примеру, символ по внешнему виду похожий на тире «—» (десятичный код 173) в режиме WYSIWYG не виден. Вернее виден, только если приходится на конец строки. Приходится переключаться в режим Source и вылавливать эти символы-паразиты.

Бывает так, что при попытке сохранить книгу выскакивает окошко со следующим сообщением:

Code: 8004005 [Unspecified error]

Source: msxml4.dll

Description: Unexpected NameSpace parameter

Это, скорее всего, где-то образовалась ошибочная конструкция наподобие section/EM/cite/EM.

Паниковать не надо. Внимательно пройдитесь по всей книге, обращая особое внимания на цитаты и стихи. Обнаружив цитату или стихи, разорванные на отдельные абзацы, аккуратно соберите их в один элемент.

Такое также случается, если вы копировали через буфер содержимое html, в котором содержались картинки. Найдите эти картинки и удалите.

Также небезопасно превращать абзац в subtitle и тут же отменять это действие. Есть риск, что программа «захлопнется». Разумеется, ничего при этом не сохранив.

При редактировании, если рядом оказыывается два и более подряд идущих пробелов FB Editor автоматически конвертирует второй и последующие пробелы в неразрывные. Вообще-то это никакой не баг, а особенность, связанная с тем, что FB Editor использует DHTML, но все равно очень раздражает.

§ 4.8 Дальнейшее развитие редактора

C начала 2007 года вокруг FB Editor наблюдается весьма активное шевеление. Не совсем, откровенно говоря, здоровое.

За модернизацию FB Editor взялись сразу два человека.

Автор, известный на форуме Fictionbook.org, как Pilgrim, доработал FB Editor, так, чтобы он поддерживал все новшества FictionBook 2.1. К сожалению, энтузиазма у него хватило ненадолго.

Алексей Савельев (Alex Saveliev), выпустивший свой продукт под названием FB Writer, напротив, сделал упор на функциональность программы. Обеспечена совместимость с IE 7.0, исправлено несколько особенно вредных ошибок, доработан интерфейс, появилось много новых «фич». Особого внимания и, чего кривить душой, восхищения, заслуживают написанные под FB Writer скрипты, значительно облегчающие и ускоряющие подготовку книги. Начиная с версии 2.0 была реализована даже проверка правописания.

Все было бы хорошо, но Алекс потребовал за свою работу деньги. Мало того, последние версии редактора требуют для запуска подключение к Internet, что автоматически вычеркнуло эту софтину из списка программ, которые я использую.

Кончилось все это печально, но закономерно. Какой-то доброхот взял, да и взломал FB Writer. После чего разобиженный автор закрыл проект.

К счастью, еще до этого грустного финала совершенствованием FB Editor-а занялся программист компании «ЛитРес». За основу были взяты исходники Pilgrim-a. На данный момент этот продукт является, хотя и весьма сырой, но самой многообещающей разработкой в этой области.

Увы, возможно он таковым и  останется. Распространение FB Editor признано вредным для коммерческих интересов «ЛитРес»-а. Посему, продукт, едва доведенный до стадии «работоспособная бета», переводится в разряд «закрытый инструмент для своих». В общем, в очередной раз бабло побеждает зло.

§ 4.9 Альтернативные средства редактирования

Говоря о редактировании FB2-книг, несправедливо было бы не упомянуть об   разработках, существующих, так сказать, в параллельной плоскости.

Book Designer 4.0

В первую очередь, это Book Designer В. Войцеховича и его специальная версия для FB2 — FB Designer.

Программа BookDesigner была разработана как средство для конвертации книг из любого формата в любой же формат. И она полностью отвечает своему назначению. Если требуется сконвертировать книгу в экзотический формат или, наоборот, извлечь из оного, то здесь альтернативы Book Designer просто нет.

Проблема, в том, что BookDesigner совершенно не рассчитан на серьезное редактирование книг. Открыть файл, быстро разметить его и сохранить в новом формате — с этим он справляется великолепно. И функция Book Cleaner (пакетный запуск регулярных выражений) также достойна всяческих похвал. Но когда приходится долго и вдумчиво редактировать книги, то выясняется, что BookDesigner в этом не силен.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*