Грешка във формата FB2

Ако нещо по страниците (съдържание, оформление) не е наред...

Грешка във формата FB2

Мнениеот lyubomirv » 07 февруари 2017, 14:44

Здравейте!

Извинявам се, ако това вече е било докладвано – не успях да намеря такава тема във форума. Проблемът не е със самия уеб сайт, а с формата FB2 като цяло, така че ако това не е правилният раздел, моля, преместете темата където трябва. На въпроса:

Забелязах проблем с формата FB2, който се състои в следното: когато в текста има бележка към определена дума (горен индекс с номер), при натискане върху номерчето програмата за четене ме прехвърля към страница, която има за заглавие съответния номер (което е нормално), но е с празен текст, тоест липсва каквото и да било описание на бележката. Пример: в текста имаме думата сажен¹. При натискане на цифрата 1, програмата ми показва страница, на която най-горе има голяма цифра 1. и абсолютно нищо друго. А трябва да има бележка относно това какво означава думата „сажен“: полска мярка за нещо си…

Изглежда проблемът засяга всички, или поне някакъв неопределен брой, книги. Забелязах го в „Хобит“ и във всички книги от поредицата „Вещерът“. Проблемът се възпроизвежда във „FBReader“ (ползвам го на Линукс), както и на устройство „PocketBook Touch Lux 3“. Проблемът е само с книгите от „Читанка“. Книги във формата FB2 от други източници работят перфектно.

Поразрових се из кода на книгите („Вещерът“) и открих какви са проблемите и как могат да се поправят:
  • В началото на файла, там, където има:
    Код: Избиране на всичко
    <FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink">
    Следното:
    Код: Избиране на всичко
    xmlns:l
    трябва да бъде така:
    Код: Избиране на всичко
    xmlns:xlink
  • Когато има изображение, включително корицата, вместо така:
    Код: Избиране на всичко
    <image l:href="#img_1-1"/>
    трябва да бъде така:
    Код: Избиране на всичко
    <image xlink:href="#img_1-1"/>
    Това на пръв поглед няма общо с бележките, но горната промяна прецаква корицата (и другите изображения), ако това не бъде направено.
  • Самите номера на бележките – вместо така:
    Код: Избиране на всичко
    <a l:href="#note_1-1" type="note">1</a>
    трябва да бъде така:
    Код: Избиране на всичко
    <a xlink:href="#note_1-1" type="note">1</a>
    Изглежда програмите разчитат на това да бъда xlink, а не да се съкращава. Подозирам, че това ще е така не само за изображения и връзки, но и други неща (ако се ползват в „Читанка“).
  • Там, където са текстовете на бележките, също трябва да се пипне. Те са в:
    Код: Избиране на всичко
    <body name="notes">
    Там всяка бележка е в отделен <section> и има <title> (който е номерът ѝ) и текст, който изглежда, например, така:
    Код: Избиране на всичко
    <p id="p-1798"><emphasis>Omnia mea mecum porto</emphasis> (лат.) — Всичко свое нося със себе си. — Б.пр.</p>
    Тук всичко е наред, с изключение на това, че атрибутът id трябва да бъде премахнат от елемента p. Този идентификатор е същият като идентификатора на абзаца в текста, в който се среща думичката с бележка. Изглежда обаче, това не се поддържа от формата FB2. Предполагам, че тези идентификатори се ползват от програмите на „Читанка“, но за FB2 явно са излишни, поне в текста на бележките.
След направата на тези поправки, бележките в книгите работят правилно, както във „FBReader“, така и на устройството „PocketBook Touch Lux 3“. Предполагам, че трябва да се пипне програмата, която преобразува SFB във FB2, но това Вие си знаете.

Поздрави! :D
lyubomirv
 
Мнения: 5
Регистрация: 20 декември 2016, 15:09

Re: Грешка във формата FB2

Мнениеот Борислав » 07 февруари 2017, 15:47

Благодаря ти за доклада! През следващите дни ще гледам да приложа предложените промени.
Аватар
Борислав
 
Мнения: 921
Регистрация: 15 ноември 2005, 17:25

Re: Грешка във формата FB2

Мнениеот zl_tsanev » 07 февруари 2017, 17:11

Според мен няма грешка поради неспазване на FB2 схемата.
Причината вероятно е във версията на FBReader-а, който ползвате. Версия 0.12.10 за Windows визуализира нормално бележката след кликване на индекса. Приложенията CoolReader и AlReader(за Windows и Android) ги визуализират нормално като бележки под линия на съответната страница (за AlReader - с изключение ако е на последния ред на страницата - тогава се кликва/докосва индекса за визуализиране на бележката).
ONYX BOOX i86HDMLPlus
Аватар
zl_tsanev
 
Мнения: 156
Регистрация: 27 май 2008, 07:54
Местонахождение: Шумен

Re: Грешка във формата FB2

Мнениеот lyubomirv » 07 февруари 2017, 18:00

zl_tsanev написа:Според мен няма грешка поради неспазване на FB2 схемата.
Това е неоспорим факт. И все пак, грешката е налице.

zl_tsanev написа:Причината вероятно е във версията на FBReader-а, който ползвате. Версия 0.12.10 за Windows визуализира нормално бележката след кликване на индекса.
Пробвах с две версии на FBReader под Линукс – 0.12.10dfsg2-2 500 (стандартната от пакетния мениджър на Убунту, а и същата като Вашата) и 0.99.4-1 (най-новата версия от уеб сайта на FBReader). И при двете се чупи. Възможно е проблемът да се проявява само под Линукс при тази програма (ако това е успокоение), но се проявява и на устройствата PocketBook (едва ли е само на „Touch Lux 3“), което вече си заслужава вниманието, поне според мен.

Така или иначе, ако се направят поправките, които предложих, само ще се увеличат устройствата/програмите, на които бележките във FB2 работят и никой няма да загуби нищо (освен времето за променяне на кода на програмата и изпробване).
lyubomirv
 
Мнения: 5
Регистрация: 20 декември 2016, 15:09

Re: Грешка във формата FB2

Мнениеот zl_tsanev » 08 февруари 2017, 08:19

Едно предложение: С описание на проблема се обърнете и към създателите на FBReader.

За CoolReader(Linux и Android) и AlReader(Android) (при спазена FB2 схема) съм правил така и съм получавал отзив и решение.

Една препоръка: За PocketBook има порт-версии на CoolReader. Може би ще намерите и за Вашия модел и можете да го инсталирате - нищо няма да загубите(освен времето за неговото инсталиране).
ONYX BOOX i86HDMLPlus
Аватар
zl_tsanev
 
Мнения: 156
Регистрация: 27 май 2008, 07:54
Местонахождение: Шумен

Re: Грешка във формата FB2

Мнениеот lyubomirv » 08 февруари 2017, 14:16

zl_tsanev написа:Едно предложение: С описание на проблема се обърнете и към създателите на FBReader.

За CoolReader(Linux и Android) и AlReader(Android) (при спазена FB2 схема) съм правил така и съм получавал отзив и решение.
Ще го имам предвид, може да го направя. Дори и да стане така, все пак докато не се обнови „FBReader“ и версията му на всички устройства „PocketBook“ (което може да отнеме доста време, мисля), бележките няма да работят.

zl_tsanev написа:Една препоръка: За PocketBook има порт-версии на CoolReader. Може би ще намерите и за Вашия модел и можете да го инсталирате - нищо няма да загубите(освен времето за неговото инсталиране).
Това става за заобиколно решение, но тогава може би би било добре някъде в „Читанка“ да е изрично описано, че има такъв проблем с книгите на тези устройства, за да знаят потребителите, че всички трябва да си инсталират „CoolReader“.

Тъй като явно наблягаме на „изгубването“ на времето, реших да спестя малко от него на човека, който реши да оправи проблема. Ето тук ще намерите кръпка за „SfbToFb2Converter.php“ (спрямо последната версия от тук в gitorious). Системата не ми позволява дори да клонирам хранилището, затова не мога да го пусна по-културно. А и хранилището изглежда недокосвано от две години, може би има друго? Във всеки случай, това трябва да се тества, правил съм го „на сухо“, а и уменията ми в php може да са малко „попрашасали“.
lyubomirv
 
Мнения: 5
Регистрация: 20 декември 2016, 15:09

Re: Грешка във формата FB2

Мнениеот Борислав » 08 февруари 2017, 14:21

Аватар
Борислав
 
Мнения: 921
Регистрация: 15 ноември 2005, 17:25

Re: Грешка във формата FB2

Мнениеот lyubomirv » 08 февруари 2017, 15:13

Ето заявката за изтегляне. Пак напомням, че трябва да се провери дали крайният резултат наистина работи.
lyubomirv
 
Мнения: 5
Регистрация: 20 декември 2016, 15:09

Re: Грешка във формата FB2

Мнениеот zl_tsanev » 08 февруари 2017, 18:44

Относно темата: След като спецификациите/схемата за FB2 формата са спазени то тя трябва да бъде не "Грешка във формата FB2", а "Проблем при четене на FB2 формата за четец (марка/модел на четеца) с фърмуер(версия на фърмуера)".
При спазени спецификации/схема на формата по мое мнение следва да се обърнете към тези, които произвеждат/предлагат четеца - той не отговаря на функционалността за която се предлага. Предложението да се правят промени от ЧИТАНКА считам за неоснователно. FBReader на четеца, който ползвам сега, за произведенията, които посочвате, работи без проблем относно бележките.
Да се нагажда конвертор за конкретен формат на модел четец с версия на програма за четене създадена/модифицирана за конкретния четец е неоснователно. FBReader има много клонинги(модифицирани и орязани за съответния четец) - ако при една версия има проблем при други няма!
ONYX BOOX i86HDMLPlus
Аватар
zl_tsanev
 
Мнения: 156
Регистрация: 27 май 2008, 07:54
Местонахождение: Шумен

Re: Грешка във формата FB2

Мнениеот lyubomirv » 09 февруари 2017, 14:53

Изпратен е доклад за грешката до поддръжката на „FBReader“.
lyubomirv
 
Мнения: 5
Регистрация: 20 декември 2016, 15:09

Re: Грешка във формата FB2

Мнениеот Zmeyw » 25 февруари 2017, 12:37

Малко късно се включвам по темата, но единствената грешка, която виждам, е не във формата FB2, а само във формата на текстовия ред на конвертираните бележки под линия, както е описал в първия пост lyubomirv.

Хедъра на FB2 файла е стандартен и въпреки краткото изписване "xmlns:l" се изпълнява правилно и няма отношение към работата на бележките. На всякакви софтуери и четци, които поддържат формата - визирам FB2 v.2.0 (+), това се интерпретира правилно.

За бележките под линия, текстът със съдържанието на бележката трябва да е в обикновен параграф, съгласно FB2 схемата - <p>бележка</p>.
Не бива да има идентификатор на параграфа, идентификаторът за обратна връзка е на секцията, затова всяка сноска (бележка) е в отделна секция.
(Подразбира се, че бележките по секции с id-та са отделени в <body name="notes"> ... </body>)

P.S. Един от "всеядните" софтуери за четене на всякакви платформи е Alreader (включително и на файлове с грешки във формата), който предлага и постранично редактиране на текста и кода на FB2 "в движение".
Zmeyw
 
Мнения: 3
Регистрация: 10 септември 2013, 14:19


Обратно към Съобщения за грешки из сайта

 


  • Подобни теми
    отговори
    прегледи
    Последно мнение

Кой е на линия

Потребители, разглеждащи форума: Николко регистрирани потребители и един гост