Fundacja Nowoczesna Polska utrzymuje w GitHubie wszystkie swoje narzędzia, również te wykorzystywane do konwersji do formatów ePub oraz Mobi o nazwie librarian.
W związku z tym, że są one dostępne na licencji GNU AGPL można sobie te narzędzia pobrać, doskonalić, przerabiać do własnych celów. I ja też zdecydowałem się na ten krok. Rozwidliłem kod librariana: https://github.com/quiris11/librarian i dodałem do niego kilka poprawek, głównie w stylach CSS oraz szablonach xsl, mające na celu oczyścić kod z niepotrzebnej nadmiarowości i wdrożyć poprawki w zakresie prezentacji akapitów z wcięciem oraz zmiany sposobu wyświetlania przypisów, których to wygląd był i pewnie dalej jest przedmiotem powszechnej krytyki.
- Teraz akapity tekstu głównego nie mają marginesu górnego i dolnego.
- Posiadają natomiast wcięcie pierwszego wiersza, ale tylko te, które rozpoczynają się zaraz za innym akapitem tekstu głównego, dlatego np. pierwszy wers akapitu rozpoczynającego rozdział takiego wcięcia nie ma.
- Przypisy zostały pozbawione fatalnie wyglądających nawiasów kwadratowych i zostały przeniesione do indeksu górnego. Dzięki temu zajmują mniej miejsca.
- Lista z przypisami również została dopasowana do reguł polskiej typografii.
Dodatkowo zmieniłem format generowanego pliku Mobi na hybrydowy (Mobi + KF8), dzięki temu nie jest konieczne utrzymywanie oddzielnego pliku stylów CSS dla Mobi, a także Mobi teraz staje się beneficjentem dodatkowych atrakcji, takich jak np. font wydawcy.
W planach mam również dodanie obsługi dzielenia wyrazów w oparciu o moduł hyphenator.py. Na swoim komputerze posiadam już działającą roboczą wersję tego rozwiązania, ale jego kod wymaga optymalizacji i dostosowania go do współpracy z innymi narzędziami librariana.
Poniżej możecie pobrać plik w formatach ePub oraz Mobi dwóch książek: Potop oraz Jądro ciemności (ta pozycja zawiera wszystkie korekty dodane na platformie redakcyjnej), będące wynikiem działania narzędzia z wyżej opisanymi modyfikacjami.
Zapraszam do folderu Wolne Lektury (udoskonalony librarian) w lokalizacji:
Osoby zainteresowane tematem proszę o konstruktywną krytykę i propozycję dalszych ulepszeń 🙂
Informację o tych zmianach przekazałem właściwym osobom w Fundacji Nowoczesna Polska, więc istnieje szansa, że poprawki zostaną włączone do głównej gałęzi kodu i w rezultacie wkrótce będziemy cieszyć się znacznie lepszymi jakościowo ebookami z Wolnych Lektur.
PS. Jeśli ktoś jest niecierpliwy i nie chce czekać, aż jego wybrana książka z katalogu Wolnych Lektur będzie beneficjentem powyższych poprawek, to może zamówić u mnie generację obydwu formatów już teraz.
Dzięki!
W moim czytniku (nook touch) występuje błąd źle wyświetlanych tytułów książek http://i.imgur.com/RDRTLQf.jpg
Udało mi się usunąć ten problem poprzez zmianę
pol
na
pl
Co do przypisów w swoich ebookach stosuje kwadratowe nawiasy i według mnie nie wygląda to źle, w klamrach są bardziej czytelniejsze. Ale wiadomo wszystkim się nie dogodzi 🙂
http://i.imgur.com/hWPguJ5.jpg
1. Rozumiem, że piszesz o książce w formacie ePub?
2. Czy ten sam problem występuje w książkach pobranych z http://wolnelektury.pl?
ad.1 Tak chodzi mi o epub.
ad.2 Sprawdziłem jeszcze pozycję Król Dżumiec. I błąd pewnie występuje w każdej pozycji, ale to jest wina czytnika nie ebooka.
pol
Jeszcze jedno. Gdzie zmieniałeś ten kod? W epub w pliku opf?
Tak w dc:language
Wcześniej to podałem, ale masz wyłączony tag „code” i wcięło tekst.
Hmm… Muszę wyjaśnić dlaczego zdecydowano się na trzyliterowe określenie języka podczas, gdy powszechnie występuje dwuliterowe. Widać, że są z tym problemy nie tylko w Nooku.
Kindlegen podczas konwersji takiego ePuba na Mobi protestuje, że taki ePub nie ma poprawnego oznaczenia języka:
Error(prcgen):E23006: Language not recognized in metadata. The dc:Language field is mandatory. Aborting.
Wczoraj zapomniałem napisać, że nie działało mi dzielenie wyrazów (przez wbudowany słownik w czytniku). Było to spowodowane przez wersje epub
unique-identifier=”BookId” version=”1.0″
Wystarczyło zmienić na 2.0 i działa poprawnie.
Dzięki za sygnał. Też się nad tym zastanawiałem, ponieważ Sigil czepia się tego, że jest to nie jest zgodne ze standardem ePub:
The package element version attribute value needs to be „2.0”, but is „1.0”
Znalazłem jeden dość gruby błąd w kodzie librariana, który powodował, że cała książka epub była praktycznie niezgodna ze standardem EPUB 2.0. Wygenerowałem ponownie obydwie książki ta i paroma innymi poprawkami. Teraz już package ma atrybut version=”2.0″ z całą pewnością. Dodatkowo poprawiłem jeszcze trzy inne elementy w zakresie poprawności i zgodności ze standardem EPUB.
Jeśli masz chwilę to pobierz ponownie powyższe książki i sprawdź, czy automatyczne dzielenie wyrazów już działa. Podejrzewam, że nie będzie działać, bo jako winowajcę typuję trzyliterowy dc:language, z którym na razie nic nie zrobiłem.
Sprawdziłem i dzielenie nie działa.
Czyli jednak ten nieszczęsny pol. Wkrótce powinienem mieć fiksa na ten ból 🙂
Wdrożyłem w librarianie automatyczną konwersję trzyliterowego kodu języka na dwuliterowy. Wygenerowałem nowe pliki. Sprawdź proszę, czy zniknął już błąd związany z czcionkami oraz czy już dzielenie działa.
Wszystko działa. 🙂
Super 🙂 Dzięki za odzew.
W imieniu zespołu Wolnych Lektur, bardzo dziękuję za włączenie się w prace i w pomoc w rozwoju biblioteki. Pozdrawiam serdecznie i obiecuję, że będziemy udoskonalać wygląd książek.
Ja z kolei mam nadzieję, że zmiany zostaną wdrożone szybciej, niż później 😉
Dobra robota!
Przydałby się chyba jeszcze odstęp przed divem klasy „note” (w WL-XML znacznik „nota”), oddzielający go od poprzedzającego akapitu. Zob. np. „Trylogia księżycowa”, fragment (końcówka part2.html):
W głowie mi huczy straszliwy młyn; zdaje się, że mam gorączkę.
Po zachodzie słońca w wąwozach między górami.
Zwlokłem się jeszcze z hamaka….
To zostało już wcześniej wdrożone w związku z zagadnieniem: http://redmine.nowoczesnapolska.org.pl/issues/3278
Po prostu nie wygenerowałem wszystkich książek. W tym momencie wszystkie ePuby i Mobi są już na serwerze i można przejrzeć, czy zmiany pasują 🙂 Przy okazji poprawiłem jeszcze stylowanie po zobaczeniu tych not w Trylogii księżycowej
Jest odstęp przed i po nocie. Jednak wg mnie odstęp poprzedzający notę powinien być wyraźnie większy. Zwykle nota albo następuje po nagłówku rozdziału, jako streszczenie, podtytuł rozdziału itp., albo zastępuje nagłówek jakiegoś poziomu (jak w „Trylogii”, albo kończy fragment lub utwór, zawierając miejsce, datę, podpis itp. Sposób justowania też się zmienił, ale czy rozróżnienie sposobu wyrównywania po tym, czy wewnątrz znacznika noty jest znacznik akapitu, zawsze zadziała zgodnie z oczekiwaniami dla danego fragmentu, to trudno powiedzieć. Krótkie fragmenty w notach tez są znakowane jako akapity.
Hm… Myślę, że margin-top:1em powinien tu wystarczyć. Wszak do tej pory marginesu górnego nie było wcale 😉 Wieczorem się tym zajmę.
Jeśli chodzi o wyrównanie do prawej i justowanie. Moja propozycja dotyczy generalnie ominięcia problem braku znacznika wyrównania do prawej strony o którym można przeczytać w zagadnieniu: http://redmine.nowoczesnapolska.org.pl/issues/602:
„W pustyni i w puszczy – odpis Stanisław Tarkowski – żeby osiągnąć
efekt wyrównanego do prawej strony podpisu, owy fragment tekstu został
oznaczony jako < motto_podpis >, choć nie mamy tu do czynienia z
mottem.”
Potem zauważyłem inną praktykę. W związku z tym, że noty zaczęły być wyrównywane do prawej strony (co nie wygląda pięknie) to wygodnym stało się wykorzystywanie tego znacznika do oznaczania podpisów i zamiast motto_podpis J.C /motto_podpis w „Jądrze ciemności” pojawiło się: nota akap J.C. /akap /nota
Szczerze, to jeśli miałbym wybierać, to J.C. jest dla mnie bardziej
podpisem niż notą.
A ponieważ uważam, że dłuższe noty generalnie powinny się zachowywać jak zwykłe akapity zaproponowałem takie rozwiązanie, że jak są akapity w notach to jest justowanie, a jak są noty bez akapitu to wyrównanie do prawej. Pozwoliłoby to rozwiązać problem podpisów.