Jak używać pandoc do konwertowania plików w wierszu poleceń systemu Linux?
Opublikowany: 2022-01-29 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.
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.
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
Nasz przykładowy plik Markdown, sample.md, zawiera krótką sekcję Markdown pokazaną na poniższym obrazku.
Tworzony jest plik o nazwie sample.html. Kiedy dwukrotnie klikniemy plik, otworzy go nasza domyślna przeglądarka.
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.
Zgrabnym akcentem jest tekst alternatywny dla obrazu, który jest również używany do automatycznego generowania podpisu dla figury.
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
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.
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
pandoc
używa jednego stylu z naszego minimalistycznego pliku CSS i stosuje go do nagłówka pierwszego poziomu.
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”.
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
iEmacs
, 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.
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów