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

ОглавлениеДобавить в закладки К обложке

# корректируем неправильное использование "<" и ">"

# заодно прибиваем ненужные тэги

outtext.gsub!(/(<p>)(.*)(<\/p>)/) do |line|

  subl1,subl2,subl3 = $1,$2,$3

  subl2.gsub!("<","\x8b")

  subl2.gsub!(">","\x9b")

  line=subl1+subl2+subl3

end

# а линки выделим жирным

outtext.gsub!(/\x8Ba href.+?\x9B(.*?)\x8B\/a\x9B/) {|line| line="<strong>"+$1+"<\/strong>"}

# компьютерное тире - в типографское

outtext.gsub!(/\s-\s/," \x97 ")

outtext.gsub!("<p>-", "<p>\x97")

annotation.gsub!(/\s-\s/," \x97 ")

# добавляем заголовок

outtext="<?xml version=\"1.0\" encoding=\"windows-1251\"?>

<FictionBook xmlns=\"http://www.gribuser.ru/xml/fictionbook/2.0\" xmlns:l=\"http://www.w3.org/1999/xlink\">

<description>

<title-info>

<genre>nonfiction</genre>

<author>

<nickname>Редакция журнала</nickname>

</author>

<book-title>"+fbtitle[0]+fbtitle[1]+fbtitle[2]+"</book-title>

<annotation>\n"+annotation+"</annotation>

<date>"+fbtitle[2][-7,4]+"</date>

<lang>ru</lang>

<sequence name=\""+fbtitle[0]+"\" number=\""+fbtitle[1][1,2]+"\"/>

</title-info>

<document-info>

<program-used>Yuzich Ruby script (WiseSoft -> FB2)</program-used>

<src-url>http://www.wisesoft.ru</src-url>

</document-info>

</description>

<body>\n"+outtext

if flagSect then outtext=outtext+"</section>" end # если надо, закроем последнюю секцию раздела

outtext=outtext+"</body>\n</FictionBook>\n" # добавляем хвост

# в имени выходного файла не должно быть двоеточия

fbtitle[0].gsub!(":","-")

# и типографские кавычки - это не есть хорошо

fbtitle[0].gsub!((171).chr,"`")

fbtitle[0].gsub!((187).chr,"`")

# сохраняем выходной файл

wfile = File.new(fbtitle[0]+fbtitle[1]+".fb2","w")

wfile.puts outtext

wfile.close

Вам останется только загрузить готовый FB2-файл в FB Editor и доделать, то, с чем не справился скрипт: вставить обложку, разметить подзаголовки и цитаты,  подправить эпиграфы. Но это не должно отнять много времени. Основную часть работы проделал скрипт.

Рабочие версии этих скриптов вы можете взять с моего сайта http://yuzzich.narod.ru.


Логин
Пароль
Запомнить меня