Pandoc i nieznane cuda

Ostatni raz wspomniałem o Haskellu w artykule na temat XMonada. Nie jest to jednak jedyna niezwykła rzecz na świecie, którą wam przedstawiam.

Z pewnością wszyscy już wiedzą Obniżka cen, a jeśli ich nie przedstawię. Jest to lekki język znaczników, który pozwala nam być szybszym i bardziej produktywnym podczas pisania tekstu. Na razie wystarczy.

Cóż, Markdown nie jest sam i istnieje wiele języków spełniających tę samą funkcję. Zwykle każdy wpada na pomysł wzięcia zwykłego tekstu z pewnymi znacznikami i przekazania go w celu ukształtowania go jako HTML, LaTex i inne. Jak dotąd wszystko dobrze.

To rodzi kilka problemów. Po pierwsze i najważniejsze, niektóre implementacje nie mają Todas funkcje, których oczekujemy. Lub język znaczników, który już to zaimplementował, nam się nie podoba.

A zanim wpadniemy w kaprysy, trzeba pomyśleć i zdać sobie sprawę, że jest lepsze rozwiązanie. Coś, co zmienia każdy język znaczników w coś innego. Ktoś.

I tu pojawia się Haskell. Cud, o którym mówię, istnieje, jest żywy, ma nazwę, działa i jest niesamowity. Wzywając siebie pandok i wyszło spod ręki filozofa z Uniwersytetu Berkeley, Johna MacFarlane'a. Trzymaj się, bo dobro się zaczyna.

Wszyscy przeciwko wszystkim

Możemy oczekiwać, że pandoc będzie oferował przeciętne pokrycie wszystkiego, nie koncentrując się. Ale nie. Jest świetnie wykonany i ma niesamowite funkcjonalności.

Aby było to proste, przekazujesz dowolny plik źródłowy do pandoc (w Markdown lub reStructuredText lub innych obsługiwanych przez pandoc) i konwertuje go na gotowy format, na przykład - czy wszyscy są gotowi? -

LaTex, zwykły HTML, PDF, DocBook, OpenDocument, docx, rtf, man, zwykły tekst i do trzech różnych typów prezentacji HTML; a moja lista jest krótka, bardzo krótka. Oto diagram ilustrujący jego moc:

I wreszcie, jest to biblioteka Haskell (lub księgarnia, nazwij to, jak chcesz); które można zintegrować z kodem innych programów. hakyl Jest to jeden z tych, który wykorzystuje go najbardziej, jest to statyczny generator stron, który przy użyciu pandoc może konwertować z nieszkodliwego Markdown i niektórych LaTexów do czystego HTML.

Tutaj lista witryn którzy już używają go jako osobistej witryny w stylu bloga.

I dość szybko, aby to zakończyć. I nawet przy tych wszystkich zaletach wydaje się, że rozszerza się on tylko w krajach anglosaskich i tutaj prawie nie ma dostępnych informacji, takich jak - i to boli - tego typu prezentacje. Może dlatego, że instrukcja obsługi jest w języku angielskim.

Wady

Oczywiście, że tak. Oprócz stosunkowo krótkiego rozpowszechniania, większość wydawców nie obsługuje go w pełni.

Vim ma podświetlanie składni dla Markdown i niewiele więcej domyślnie, więc pomijamy niektóre z najfajniejszych rzeczy w pandoc: jego rozszerzoną składnię.

Rzeczy, które nigdy nie zostały poruszone w oryginalnym Markdown i które ułatwiają nam życie, takie jak tabele, cytaty, przypisy, HTML i LaTex w kodzie, metadane i bardziej zaawansowane cechy.

Nawiasem mówiąc, Emacs ma tutaj przewagę. Ma tryb Markdown, który zapewnia nam podświetlanie składni i kilka przydatnych poleceń, ale jest tryb pandoc pełnoprawny, którego odpowiednik Vima nadal nie może z nim konkurować.

Jeśli nadal jesteś zainteresowany umieszczeniem go w Vimie, oto plik składni. W przypadku emacsa musisz zainstalować tryby markdown i pandoc, jak już wspomniano.

Od razu do rzeczy

Odkryłem pandoc, szukając pakietu text2tags (inny konwerter, ale bardziej ograniczony) en chrupnięcie huk a teraz wiem, że jest dostępny w formacie Debian stabilny z nazwą, zgadnij co, pandoc. ZA instalacja umiejętności wystarczy na to. Ale te, których używamy ArchLinux najpierw musimy doświadczyć kilku niepowodzeń.

To piekło zależności

Pierwszą rzeczą, o której myślimy, jest zrobienie pacman -S pandoc. Więc nie. W oficjalnych repozytoriach nie ma pakietu, a AUR nie działa ze względu na ogromną liczbę zależności, których wymaga. Jeśli już wiesz coś o Haskellu, pomyślisz, że Cabal to rozwiąże. I tak, ale z zastrzeżeniami. Aby to zrobić, musisz uruchomić:

sudo pacman -S ghc cabal-install aktualizacja cabal cabal install pandoc

To powinno działać, ale nie polecam tego. Zwłaszcza jeśli chcesz wejść do świata Haskella, bo w przyszłości przyniesie ci to przerażające problemy.

Z pewnością dziwnie brzmi skarga na ArchLinux i jego filozofię, ale wydaje mi się kompletnym nonsensem usunięcie pakietu platformy haskell z repozytoriów, które zapewniły ostatnie środowisko wystarczająco rozwinięte i kompatybilne ze sobą; dlaczego ghc i cabal-install zostały zaktualizowane.

Jeśli chcesz zainstalować inne pakiety za pomocą cabal, najlepiej je pobrać antiguos ghc i cabal-install z Maszyna do cofania łuku.

Instalujemy je za pomocą prostego pacmana -U ścieżka-pakietu i sprawiamy, że pacman ignoruje je podczas aktualizacji systemu, w pliku /etc/pacman.conf; sekcja wewnętrzna Ignoruj ​​pakiet.

Teraz możemy użyć cabal do zainstalowania pandoc i aby działał tak, jak powinien, umieściliśmy tę linię w naszym pliku .bashrc:

export PATH = ~ / .cabal / bin: $ PATH

I to wszystko. Coś naciąganego, ale unikamy problemów. Jeśli chcesz zacząć od innych pakietów, zamiast instalować je lokalnie, możesz użyć hsenw aby stworzyć izolowane środowiska i uniknąć bólu głowy związanego z instalacją, na przykład Hakyll.

A kiedyś ostrzegam, że to straszne. Wszystko to dlatego, że Haskell i Cabal nie rozwiązali jeszcze piekła zależności, którego inne języki już się pozbyły, na przykład Ruby z pakietem i klejnotami. W każdym razie zawdzięczam to małe rozwiązanie Iana Rossa z grupy Hakylla.

Bądź cierpliwy. To długa instalacja, ponieważ kompiluje ją za nas.

Zastosowanie i wnioski

Bierzesz terminal i wysyłasz takie zamówienie:

pandoc -o plik-wyjściowy.ext -i plik-oryginalny.md

Gdzie Markdown (* .md, to rozszerzenie, którego używam) można zastąpić dowolnym innym formatem, a .ext dowolnym innym dostępnym w danych wyjściowych.

Dla mnie praktycznie codzienne robienie tego bardzo mi pomogło, szczególnie w przypadku eksportu do OpenDocument.

Ekosystem jest niesamowity. Sam MacFarlane opracował wiki w Haskell, którego Pandoc używa do konwersji swoich stron, ale to już inna historia. Nawiasem mówiąc, ten post został z dumą napisany z Pandocem, podobnie jak większość tych, które napisałem do tej pory,


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   gadi powiedział

    Używam też Markdown. Kate i Gedit mogą mieć zainstalowaną wtyczkę do podświetlania składni. Następnie, aby przekonwertować go do ODT, wybieram MultiMarkdown, jest to ten, który najbardziej, jakby to powiedzieć, „szanuje tekst”, dzięki czemu kopiowanie go do dokumentu ze stylami akapitowymi jest wygodniejsze. Pandoc nie dał mi takich samych wyników, a przynajmniej nie wiedziałem, jak to zrobić 😛

    1.    anty powiedział

      Możesz zmusić Pandoc do wzięcia tylko standardowego Markdown, aktywując opcję –strict; Jeśli o to ci chodzi. Jednak jego główną zaletą jest wszechstronność między formatami.
      Polecam, skoro niewiele widziałem, że go używają, to mi nie zaszkodziło.

  2.   erunamoJAZZ powiedział

    Użyłem go, aby przejść z LaTeX do reStructuredText. Robi to bardzo dobrze (przez większość czasu xD)

  3.   msx powiedział

    Ciekawe, dzięki za udostępnienie.