Pisanie własnego ebooka

blog.mloza.pl 2 lat temu

W ramach kursu na https://programovanie.pl część materiałów postanowiłem udostępnić w formie ebooka. Kurs wideo jest bardzo fajny, aby pokazać coś po raz pierwszy i wytłumaczyć. Jednak jeżeli nie używamy tych rzeczy cały czas, to one mogą trochę uciekać z głowy. Odkopanie później odpowiedniego miejsca w kursie wideo jest co najmniej trudne. Dlatego postanowiłem dołączyć treść w formie pisemnej.

Wymagania

Chciałem, aby książka była dostępna w różnych formatach pdf i mobi, tak aby można było ją wygodnie czytać na komputerze oraz wrzucić sobie na czytnik, jeżeli komuś jest tak wygodniej. Fajnym dodatkiem byłby też format epub, ale nie było to konieczne.

Drugim wymaganiem była możliwość łatwego pisania i edycji całości, więc edytory tekstu jak Word czy Pages odpadały. prawdopodobnie da się tam stworzyć ładnego ebooka, jednak nie jestem mistrzem tego oprogramowania, a walka z rozjeżdżającymi się elementami bywa przytłaczająca. Plus chciałem, aby kolorowanie składni kodu było automatyczne, choćby jeżeli coś zmienię na gwałtownie już w gotowej książce, nie będzie to wymagać kolorowania od nowa oraz wyrównywania wcięć.

Trzecim wymaganiem była jakaś kontrola wersji. Nad książką pracujemy we 2, więc wygodniej to synchronizować przez narzędzie, które już znam jak np. git. Przy okazji ułatwia ono przeglądanie zmian i komentowanie poprawek przez na przykład GitHuba i pull requesty.

Poszukiwanie narzędzia

Zacząłem od Latexa. Kiedyś pisałem w nim pracę dyplomową i wydawał się dobrym wyborem. Niestety nie korzystałem z niego przez dłuższy czas, przez co już zdążyłem zapomnieć jak się nim posługiwać. Więc była to pierwsza przeszkoda. Drugą przeszkodą, jaką napotkałem, była instalacja pakietów potrzebnych do wygenerowania PDF. Niestety nie chciał współpracować z makiem i cały czas czegoś brakowało i nie mógł wygenerować podstawowej wersji książki. W międzyczasie przeglądałem też możliwości generowania innych formatów niż PDF i okazało się, iż jest to co najmniej nietrywialne. Postanowiłem poszukać innej drogi.

Troszkę kopania w sieci i okazało się, iż Adobe w swoim pakiecie aplikacji posiada taką przeznaczoną do tworzenia plakatów, ulotek i również książek. Adobe InDesign, brzmiało bardzo dobrze, postanowiłem to przetestować. Szybkie sprawdzenie i rzeczywiście aplikacja ta ma ogromne możliwości. Jednak dla moich celów jest zbyt skomplikowana i przez co wymaga dużego nakładu czasu w naukę obsługi oraz potem na projektowanie całej książki. Może się przyda później, gdy już będę miał gotową książkę. Tak, aby można było poprawić jedynie wygląd w InDesignie, ale nie pisać tam całą treść.

Przekopałem jeszcze trochę internetu, przeglądnąłem wiele konwerterów formatów, jednak nie natrafiłem na nic ciekawego. W końcu trafiłem na wpis, w którym ktoś opisywał jego drogę ze stworzeniem i publikacją książki.

LeanPub

Pewnie znasz to wydawnictwo, a może choćby czytałeś jakieś książki od nich. Okazuje się, iż dostarczają oni narzędzia, dzięki którym można stworzyć i wydać swoją książkę, a później ją sprzedawać w ich sklepie! Do tego spełnia wszystkie moje wymagania!

Jak to działa?

Treść książki piszemy w Markdownie, a przynajmniej w jego odmianie. Ma ona parę dodatkowych funkcji, które okazują się niezwykle przydatne podczas tworzenia książki. Dobrym przykładem mogą być ramki z ikonkami, na przykład ramka TIP! lub informacja. Znałem podstawową składnię Markdowna (np. jak wstawić nagłówek), ale jest on na tyle prosty, iż nie wymaga długiej nauki. Dodatkowo od razu wspiera wstawianie kodu i jego kolorowanie. Kolejnym plusem jest, iż IntelliJ ma w sobie edytor Markdowna, który od razu generuje podgląd oraz sprawdza kod wstawiony do skryptu (nie idealnie, ale zawsze). Brakuje w nim wsparcia dla dodatkowych elementów, ale i tak jest wystarczający do pisania i można na to przymknąć oko.

W aplikacji jest również wsparcie do generowania książek z formatu Word, ale nie testowałem tej opcji.

W najwyższym pakiecie istnieje możliwość wyeksportowania projektu do InDesign. Kiedy książka ma gotowe treści, wtedy można zająć się przygotowaniem oprawy graficznej i składem całości.

Kontrola wersji

LeanPub umożliwia tworzenie książki bezpośrednio w przeglądarce, przesyłanie plików lub też potrafi połączyć się z GitHubem! I to nam załatwia kontrolę wersji. Dodatkowo wspiera też branch „development” – czyli wersja książki, nad którą pracujemy i „main” – czyli gotowa do opublikowania.

Aby wygenerować nową wersję książki, musimy tylko wrzucić zmiany do repozytorium i na stronie kliknąć przycisk (lub w najdroższym pakiecie możemy skorzystać z API). Ewentualnie wrzucić ją na gałąź i wystawić pull request do gałęzi, z której jest generowana książka.

Wspierane formaty

Możemy w ten sposób wygenerować sobie PDF, MOBI i EPUB. Czyli mam pokryte wszystkie formaty, jakie potrzebowałem. Dodatkowo format EPUB możemy przeglądać w przeglądarce online.

Ile to kosztuje?

LeanPub udostępnia darmowy pakiet, niestety nie zawiera on w sobie integracji z GitHubem oraz składania książki z wielu plików. Dlatego musiałem wybrać pakiet standard za $10 miesięcznie, ale za to w cenie dużej pizzy mam spokój, wszystko działa i nie muszę się przejmować konfigurowaniem narzędzi. Może w przyszłości znajdę czas i chęci na zabawę z zestawieniem własnych narzędzi, które mi to umożliwią, jednak na razie doba jest na to zbyt krótka.

Końcowy produkt

Aktualnie książka ma 12 rozdziałów, możesz ją pobrać poniżej i zobaczyć jak to wygląda. Moim zdaniem bardzo fajnie. Może nie jest idealnie, ale wystarczająco. Na razie mogę się skupić na tworzeniu treści.

podrecznik-programisty-12

EPUB i MOBI są dostępne w kursie na stronie https://programovanie.pl.

Podsumowanie

Jeśli chcesz napisać własny ebook to LeanPub jest dobrym miejscem, aby zacząć. Bardzo niskim nakładem pracy (i pieniędzy) można zacząć pracować nad swoją książką. Nie musisz się przejmować konfiguracją narzędzi, walką z edytorem, tylko możesz się skupić na tworzeniu treści w książce. Ja nie planuję sprzedawać książki do kursu, więc nie przyglądałem się tym możliwościom platformy, jednak jeżeli kiedyś będę chciał, to zrobić to wiem gdzie uderzyć. Dodatkowo możliwość eksport projektu do InDesign daje możliwość pracy nad szatą graficzną. Polecam!

Idź do oryginalnego materiału