Jak używać pandoc do konwertowania plików w wierszu poleceń systemu Linux?

Opublikowany: 2022-01-29
Okno terminala działające na laptopie z systemem Linux z motywem pulpitu w stylu Ubuntu.
Fatmawati Achmad Zaenuri/Shutterstock

Możesz użyć pandoc w systemie Linux do konwersji między ponad 40 formatami plików. Możesz również użyć go do stworzenia prostego systemu dokumentów jako kodu, pisząc w Markdown, przechowując w git i publikując w dowolnym z obsługiwanych formatów.

Konwersja dokumentów i dokumentacja jako kod

Jeśli masz dokument w jednym z wielu obsługiwanych przez pandoc's formatów plików, przekonwertowanie go na dowolny inny jest bardzo proste. To przydatne narzędzie!

Ale prawdziwa moc pandoc staje się widoczna, gdy używasz go jako podstawy prostego systemu dokumentów jako kodu. Założeniem docs-as-code jest zaadoptowanie niektórych technik i zasad tworzenia oprogramowania i zastosowanie ich do pisania dokumentacji, szczególnie w przypadku projektów programistycznych. Możesz go jednak zastosować do tworzenia dowolnego rodzaju dokumentacji.

Twórcy oprogramowania używają swojego ulubionego edytora lub zintegrowanego środowiska programistycznego (IDE) do pisania swoich programów. Wpisywany przez nich kod jest zapisywany w plikach tekstowych. Zawierają one kod źródłowy programu.

Używają systemu kontroli wersji lub VCS (najpopularniejszy jest Git), aby przechwytywać zmiany w kodzie źródłowym w miarę jego opracowywania i ulepszania. Oznacza to, że programista ma pełną historię wszystkich wersji plików kodu źródłowego. Może szybko uzyskać dostęp do dowolnej poprzedniej wersji pliku. Git przechowuje pliki w repozytorium. Na komputerze każdego dewelopera znajduje się lokalne repozytorium oraz centralne, udostępnione, zdalne repozytorium, które często jest hostowane w chmurze.

Reklama

Kiedy są gotowi do stworzenia działającej wersji programu, używają kompilatora do odczytania kodu źródłowego i wygenerowania binarnego pliku wykonywalnego.

Pisząc dokumenty w lekkim, tekstowym języku znaczników, możesz użyć VCS do kontroli wersji. Gdy jesteś gotowy do rozpowszechniania lub publikowania dokumentu, możesz użyć pandoc do wygenerowania tylu różnych wersji dokumentacji, ile potrzebujesz, w tym internetowych (HTML), tekstowych lub składu (LibreOffice, Microsoft Word, TeX) , przenośny format dokumentów (PDF), e-book (ePub) i tak dalej.

Możesz to wszystko zrobić z jednego zestawu kontrolowanych wersji, lekkich plików tekstowych.

Instalowanie pandoca

Aby zainstalować pandoc na Ubuntu, użyj tego polecenia:

 sudo apt-get zainstaluj pandoc 

W Fedorze potrzebne polecenie to:

 sudo dnf zainstaluj pandoc 

Na Manjaro musisz wpisać:

 sudo pacman -Syu pandoc 

Możesz sprawdzić, którą wersję zainstalowałeś, korzystając z opcji --version :

 pandoc --wersja 

Korzystanie z pandoca bez plików

Jeśli używasz pandoc bez żadnych opcji wiersza poleceń, akceptuje on również wpisywane dane wejściowe. Wystarczy nacisnąć klawisze Ctrl+D, aby wskazać, że zakończyłeś pisanie. pandoc oczekuje, że będziesz pisać w formacie Markdown i generuje kod HTML.

Spójrzmy na przykład:

 pandoc 

Wpisaliśmy kilka linijek Markdown i zaraz wciśniemy Ctrl+D.

Reklama

Gdy tylko to zrobimy, pandoc wygeneruje równoważny wynik HTML.

Aby zrobić cokolwiek pożytecznego z pandoc , naprawdę musimy użyć plików.

Podstawy przecen

Markdown to lekki język znaczników, a niektórym znakom nadaje się specjalne znaczenie. Możesz użyć zwykłego edytora tekstu, aby utworzyć plik Markdown.

Markdown można łatwo odczytać, ponieważ nie ma wizualnie nieporęcznych znaczników, które odwracałyby uwagę od tekstu. Formatowanie w dokumentach Markdown przypomina formatowanie, które reprezentuje. Poniżej znajdują się niektóre z podstaw:

  • Aby wyróżnić tekst kursywą , owiń go gwiazdkami. *This will be emphasized*
  • Aby pogrubić tekst, użyj dwóch gwiazdek. **This will be in bold**
  • Nagłówki są reprezentowane przez znak numeryczny/krzyżyk ( # ). Tekst jest oddzielony od skrótu spacją. Użyj jednego skrótu dla nagłówka najwyższego poziomu, dwóch dla drugiego poziomu i tak dalej.
  • Aby utworzyć listę punktowaną, zacznij każdy wiersz listy od gwiazdki i wstaw spację przed tekstem.
  • Aby utworzyć listę numerowaną, zacznij każdy wiersz od cyfry, po której następuje kropka, a następnie wstaw spację przed tekstem.
  • Aby utworzyć hiperłącze, umieść nazwę witryny w nawiasach kwadratowych ( [] ), a adres URL w nawiasach [ () ] w następujący sposób: [Link to How to Geek](https://www.howtogeek.com/) .
  • Aby wstawić obraz, wpisz wykrzyknik bezpośrednio przed nawiasami ( ![] ). Wpisz dowolny tekst alternatywny dla obrazu w nawiasach. Następnie umieść ścieżkę do obrazu w nawiasach [ () “]. Oto przykład: ![The Geek](HTG.png) .

Więcej przykładów omówimy w następnej sekcji.

POWIĄZANE: Co to jest przecena i jak z niej korzystać?

Konwersja plików

Konwersje plików są proste. pandoc może zwykle ustalić, z jakimi formatami plików pracujesz, na podstawie ich nazw plików. Tutaj wygenerujemy plik HTML z pliku Markdown. Opcja -o (wyjście) mówi pandoc nazwę pliku, który chcemy utworzyć:

 pandoc -o przyklad.html przyklad.md 

Reklama

Nasz przykładowy plik Markdown, sample.md, zawiera krótką sekcję Markdown pokazaną na poniższym obrazku.

Tekst Markdown w pliku sample.md w oknie edytora gedit.

Tworzony jest plik o nazwie sample.html. Kiedy dwukrotnie klikniemy plik, otworzy go nasza domyślna przeglądarka.

Renderowanie HTML pliku sample.md markdown w oknie przeglądarki.

Teraz wygenerujmy dokument tekstowy w formacie Open Document, który możemy otworzyć w LibreOffice Writer:

 pandoc -o przyklad.odt przyklad.md 

Plik ODT ma taką samą zawartość jak plik HTML.

Dokument ODT wyrenderowany z przecen i otwarty w LibreOffice Writer.

Zgrabnym akcentem jest tekst alternatywny dla obrazu, który jest również używany do automatycznego generowania podpisu dla figury.

Automatycznie wygenerowany podpis pod rysunkiem w LibreOffice Writer.

Określanie formatów plików

Opcje -f (z) i -t (do) ​​służą do informowania pandoc , z jakich formatów plików chcesz konwertować i na jakie. Może to być przydatne, jeśli pracujesz z formatem pliku, który ma wspólne rozszerzenie pliku z innymi powiązanymi formatami. Na przykład TeX i LaTeX używają rozszerzenia „.tex”.

Używamy również opcji -s (samodzielnej), więc pandoc wygeneruje całą preambułę LaTeX wymaganą, aby dokument był kompletnym, samodzielnym i dobrze sformatowanym dokumentem LaTeX. Bez opcji -s (samodzielna) dane wyjściowe nadal byłyby dobrze sformatowanym LaTeX-em, który można by umieścić w innym dokumencie LaTeX-owym, nie byłby właściwie analizowany jako samodzielny dokument LaTeX-owy.

Wpisujemy:

 pandoc -f markdown -t latex -s -o sample.tex sample.md 

Reklama

Jeśli otworzysz plik „sample.tex” w edytorze tekstu, zobaczysz wygenerowany LaTeX. Jeśli masz edytor LaTeX, możesz otworzyć plik TEX, aby zobaczyć podgląd interpretacji poleceń składu LaTeX. Zmniejszenie okna, aby pasowało do poniższego obrazu, sprawiło, że wyświetlacz wyglądał na ciasny, ale w rzeczywistości było w porządku.

Plik LaTeX otwarty w Texmaker, pokazujący podgląd strony składu.

Użyliśmy edytora LaTeX o nazwie Texmaker. Jeśli chcesz zainstalować go w Ubuntu, wpisz:

 sudo apt-get install texmaker

W Fedorze polecenie to:

 sudo dnf zainstaluj texmaker

W Manjaro użyj:

 sudo pacman - texmaker Syu

Konwertowanie plików za pomocą szablonów

Prawdopodobnie zaczynasz rozumieć elastyczność, jaką zapewnia pandoc . Możesz napisać raz i opublikować w niemal dowolnym formacie. To wielki wyczyn, ale dokumenty wyglądają trochę waniliowo.

Dzięki szablonom możesz dyktować, jakich stylów używa pandoc podczas generowania dokumentów. Na przykład możesz powiedzieć pandoc , aby używał stylów zdefiniowanych w pliku kaskadowych arkuszy stylów (CSS) za pomocą opcji --css .

Stworzyliśmy mały plik CSS zawierający poniższy tekst. Zmienia odstępy powyżej i poniżej nagłówka poziomu o jeden styl. Zmienia również kolor tekstu na biały, a kolor tła na odcień niebieskiego:

 h1 {
  kolor: #FFFFFF;
  kolor tła: #3C33FF;
  górny margines: 0px;
  margines-dolny: 1px;
}

Pełne polecenie znajduje się poniżej — zauważ, że użyliśmy również samodzielnej opcji ( -s ):

 pandoc -o przyklad.html -s --css przyklad.css przyklad.md
Reklama

pandoc używa jednego stylu z naszego minimalistycznego pliku CSS i stosuje go do nagłówka pierwszego poziomu.

HTML renderowany ze znaczników ze stylem CSS zastosowanym do nagłówka pierwszego poziomu w oknie przeglądarki

Inną opcją dostrajania dostępną podczas pracy z plikami HTML jest dołączenie znaczników HTML do pliku Markdown. Zostanie on przekazany do wygenerowanego pliku HTML jako standardowe znaczniki HTML.

Ta technika powinna być jednak zarezerwowana dla sytuacji, gdy generujesz tylko dane wyjściowe HTML. Jeśli pracujesz z wieloma formatami plików, pandoc zignoruje znaczniki HTML dla plików innych niż HTML i zostanie do nich przekazany jako tekst.

Możemy również określić, jakie style są używane podczas generowania plików ODT. Otwórz pusty dokument LibreOffice Writer i dostosuj style nagłówka i czcionki do swoich potrzeb. W naszym przykładzie dodaliśmy również nagłówek i stopkę. Zapisz dokument jako „odt-template.odt”.

Możemy teraz użyć tego jako szablonu z opcją --reference-doc :

 pandoc -o sample.odt --reference-doc=odt-template.odt sample.md 

Porównaj to z wcześniejszym przykładem ODT. W tym dokumencie zastosowano inną czcionkę, kolorowe nagłówki oraz nagłówki i stopki. Został jednak wygenerowany z dokładnie tego samego pliku Markdown „sample.md”.

Plik ODT renderowany z przecen z dokumentem LibreOffice działającym jako arkusz stylów w oknie LibreOffice Writer.

Reklama

Szablony dokumentów referencyjnych mogą służyć do wskazywania różnych etapów produkcji dokumentu. Na przykład możesz mieć szablony ze znakami wodnymi „Wersja robocza” lub „Do recenzji”. W sfinalizowanym dokumencie zostałby użyty szablon bez znaku wodnego.

Generowanie plików PDF

Domyślnie pandoc używa silnika LaTeX PDF do generowania plików PDF. Najłatwiejszym sposobem upewnienia się, że spełniasz odpowiednie zależności LaTeX-a, jest zainstalowanie edytora LaTeX, takiego jak Texmaker.

To jednak dość duża instalacja — Tex i LaTeX są dość mocne. Jeśli miejsce na dysku twardym jest ograniczone lub wiesz, że nigdy nie będziesz używać TeX-a lub LaTeX-a, możesz chcieć wygenerować plik ODT. Następnie możesz po prostu otworzyć go w LibreOffice Writer i zapisać jako plik PDF.

Dokumenty jako kod

Korzystanie z języka Markdown jako języka pisania ma kilka zalet, w tym:

  • Praca z plikami tekstowymi jest szybka: ładują się one szybciej niż pliki edytora tekstu o podobnej wielkości i mają tendencję do szybszego poruszania się po dokumencie. Wiele edytorów, w tym gedit , Vim i Emacs , używa podświetlania składni z tekstem Markdown.
  • Będziesz mieć oś czasu wszystkich wersji swoich dokumentów: jeśli przechowujesz dokumentację w systemie VCS, takim jak Git, możesz łatwo zobaczyć różnice między dowolnymi dwiema wersjami tego samego pliku. Jednak to naprawdę działa tylko wtedy, gdy pliki są zwykłym tekstem, ponieważ tego oczekuje system VCS.
  • System VCS może rejestrować, kto i kiedy dokonał zmian: Jest to szczególnie przydatne, jeśli często współpracujesz z innymi przy dużych projektach. Zapewnia również centralne repozytorium samych dokumentów. Wiele usług Git hostowanych w chmurze, takich jak GitHub, GitLab i BitBucket, ma w swoich modelach cenowych bezpłatne warstwy.
  • Możesz generować swoje dokumenty w wielu formatach: za pomocą kilku prostych skryptów powłoki możesz pobrać style z CSS i dokumentów referencyjnych. Jeśli przechowujesz dokumenty w repozytorium VCS, które integruje się z platformami Continuous Integration i Continuous Deployment (CI/CD), mogą one być generowane automatycznie podczas tworzenia oprogramowania.

POWIĄZANE: Co to jest GitHub i do czego służy?

Końcowe przemyślenia

W Pandoc jest o wiele więcej opcji i funkcji niż to, co tutaj omówiliśmy. Procesy konwersji dla większości typów plików można dostosować i dostroić. Aby dowiedzieć się więcej, sprawdź doskonałe przykłady na oficjalnej (i niezwykle szczegółowej) stronie internetowej pandoc.

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów