უკან დაბრუნება
თქვენი EPUB რიგზეა — Kobo უარყოფს, დამნაშავე კი Adobe-ია
SiTech AI Team2 წთ. საკითხავი

თქვენი EPUB რიგზეა — Kobo უარყოფს, დამნაშავე კი Adobe-ია

წიგნი, რომელმაც EPUB-ის საცნობარო ვალიდატორი წარმატებით გაიარა, Kobo-ს მკითხველებმა „დაზიანებულად“ აღიქვეს. მიზეზი Adobe-ის RMSDK ძრავაა, რომლის CSS პარსერი ~2013 წლიდან გაჩერებულია.

ვალიდური EPUB ფაილი Kobo-ს ელექტრონულმა მკითხველებმა „დაზიანებულად“ მიიჩნიეს, ხოლო კვალი Adobe-ის ძრავამდე მიდის, რომელიც კომპანიამ დაახლოებით 2010 წელს დაწერა და მას შემდეგ არ განუახლებია. ავტორი, რომელიც DRM-ის გარეშე ციფრულ წიგნებს აქვეყნებს, ეს შემთხვევა ანალიზის სახით აღწერა მას შემდეგ, რაც მკითხველმა შეატყობინა, რომ ახალი წიგნი მისი რამდენიმე თაობის Kobo მოწყობილობაზე საერთოდ არ იხსნებოდა.

ფაილი უხარისხოდ არ იყო მომზადებული: მან წარმატებით გაიარა epubcheck 3.3 — EPUB სტანდარტის საცნობარო ვალიდატორი — და უპრობლემოდ იხსნებოდა Amazon Kindle-ზე, Apple Books-სა და Thorium-ში. Kobo-ზე ვერ გახსნა ძველი EPUB2 წესებით აწყობილმა ვერსიამაც.

ერთი ხაზი CSS-ში

გარდამტეხი მომენტი მაშინ დადგა, როცა ავტორმა წიგნის სტილების ფაილი გამორთო და ტექსტი უცებ ჩაიტვირთა. ფაილის შევიწროების შემდეგ ერთი დეკლარაცია გამოიკვეთა: .copyright img { max-width: min(150px, 30vw); } — სრულიად ვალიდური CSS Level 4. ძველებურ max-width: 150px-ად გადაწერის შემდეგ Adobe Digital Editions-მა ფაილი ჩვეულებრივად გახსნა. Kobo-ს მკითხველები იყენებენ RMSDK-ს (Reader Mobile Software Development Kit) — Adobe-ის კერძო ძრავას, რომელიც Adobe Digital Editions-ის ბირთვია. EPUB2-ისთვის შექმნილი და EPUB3-ისთვის მხოლოდ მსუბუქად განახლებული ძრავის CSS პარსერი ფაქტობრივად 2013 წლის დონეზე გაჩერდა: არც flexbox, არც grid, არც მათემატიკური ფუნქციები, არც custom properties — და ჩუმი წარუმატებლობა ყველაფერზე, რასაც ის ვერ ცნობს. ავტორის თქმით, Adobe Digital Editions-ს შეცდომა საერთოდ არ მიუცია — ერთადერთი რეაქცია თეთრი ეკრანი იყო.

ორი რენდერერი, არჩევანი ფაილის გაფართოებით

პოსტის განახლება დასძენს, რომ Kobo-ს რეალურად ორი რენდერინგის გზა აქვს. სტანდარტული EPUB ფაილები Adobe-ის RMSDK-ზე გადადის, ხოლო KEPUB — Kobo-ს საკუთარი ფორმატი — აქტიურად მხარდაჭერილ WebKit-ზე დაფუძნებულ რენდერერზე მუშაობს. რომელი მათგანი ამოქმედდება, მხოლოდ ფაილის გაფართოება წყვეტს: წიგნის .kepub.epub-ად გადარქმევა მას WebKit ძრავზე გადაიყვანს — ავტორის მოყვანილი KoWiki-ს დოკუმენტაციის მიხედვით.

რატომ ვერ იჭერს ამას epubcheck

epubcheck CSS-ს ამოწმებს, მაგრამ ფაილს სპეციფიკაციასთან ადარებს და არა კონკრეტული რენდერერის შეზღუდვებთან — ამიტომ წიგნი შეიძლება სრულად შესაბამისი იყოს და მაინც ჩავარდეს მოწყობილობაზე. Hacker News-ის კომენტატორებმა პრობლემა კიდევ უფრო ღრმად გადაიტანეს: CSS პარსერებს უცნობი დეკლარაციების ჩუმად იგნორირებას 1996 წლიდან ავალდებულებს, ამიტომ საქმე თანამედროვეობა კი არა, საბაზისო დონის უგულებელყოფაა. ვინც იგივე კედელს შეეჯახა, ავტორი მესამე მხარის ხელსაწყოს ურჩევს, რომელიც სტილების ფაილს ამოწმებს Kobo-ზე დამტვრევადი წესებისთვის და ავტომატურად ასწორებს მათ. წიგნი უკვე გამოქვეყნებულია შესწორებული ვერსიით.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.