Pandocと未知の不思議

Haskellについて最後に言及したのは、 XMonadGenericName。 しかし、私が提示するのは世界で唯一の注目すべきことではありません。

確かに誰もがすでに知っています 値下げ、そして私がそれらを提示しない場合。 これは、テキストを書くときに、より速く、より生産的になることを可能にする軽いマークアップ言語です。 今のところ十分です。

まあ、マークダウンだけではなく、同じ機能を実行するためにそこに多数の言語があります。 通常、誰もがいくつかのマークが付いたプレーンテキストを取得し、それを渡してHTML、LaTexなどとして形成するというアイデアを採用しています。 そこまではすべて良い。

これはいくつかの問題を引き起こします。 まず、そして最も重要なことは、いくつかの実装には todas 必要な機能。 または、これをすでに実装しているマークアップ言語は好きではありません。

そして、気まぐれに巻き込まれる前に、より良い解決策があることを考え、理解する必要があります。 マークアップ言語を別のものに変える何か。 誰でも。

ここでHaskellが登場します。 私が話す不思議は存在し、生きていて、名前があり、機能し、そして素晴らしいです。 自分自身を呼び出す パンドック そしてそれは、カリフォルニア大学バークレー校のジョン・マクファーレンの哲学者の手から来ました。 良いことが始まるので、待ってください。

トドスコントラトドス

集中しないことで、pandocがすべてを平凡にカバーすることを期待できます。 しかし、違います。 それは優れた働きをし、驚くべき機能を備えています。

簡単にするために、任意のソースファイルをpandocに渡します (MarkdownまたはreStructuredTextまたはpandocがサポートするその他のもの) そしてそれを完成したフォーマットに変換します-みんな準備ができていますか?-

LaTex、プレーンHTML、PDF、DocBook、OpenDocument、docx、rtf、man、プレーンテキスト、および最大XNUMX種類のHTMLプレゼンテーション。 そして、私のリストは非常に不足しています。 これはその力を説明する図です:

そして最後に大事なことを言い忘れましたが、それはHaskellライブラリ(または書店、あなたが望むものと呼んでください)です。 他のプログラムのコードに統合することができます。 ハキル これは最も悪用されているもののXNUMXつであり、これは静的ページジェネレーターであり、pandocを使用すると、無害なMarkdownや一部のLaTexから純粋なHTMLに変換できます。

ここで サイトリスト ブログのスタイルで、すでに個人的なサイトとしてそれを使用している人。

そして、それを完了するのはかなり速いです。 そして、これらすべての利点があっても、それはアングロサクソン諸国でのみ拡大するようであり、ここでは、このタイプのプレゼンテーションなど、利用可能な情報はほとんどありません。 ユーザーガイドが英語で書かれているからかもしれません。

短所

もちろんある必要があります。 その比較的短い広がりを除いて、ほとんどの出版社はそれを完全にサポートしていません。

Vimには構文の強調表示があります パラ デフォルトではマークダウンなどがほとんどないため、pandocの最も優れた点のいくつかを見逃しています。拡張構文です。

表、引用、脚注、コード内のHTMLとLaTex、メタデータ、より高度な特性など、元のMarkdownで発生したことのない、私たちの生活を楽にするもの。

ちなみに、Emacsにはここでの利点があります。 構文の強調表示といくつかの便利なコマンドを提供するマークダウンモードがありますが、 pandocモード 本格的で、Vimの同等物はまだそれと競争することはできません。

それでもVimに取り込むことに興味がある場合は、ここに構文ファイルがあります。 emacsの場合、すでに述べたように、マークダウンモードとパンドックモードをインストールする必要があります。

ポイントにまっすぐ

text2tagsパッケージを探しているときにpandocを発見しました (別のコンバーターですが、より制限されています) en クランチバン そして今、私はそれがで利用可能であることを知っています Debianの 名前で安定している、何を推測する、pandoc。 A aptitudeインストール これには十分です。 しかし、私たちが使用するもの ArchLinux 最初にいくつかの挫折に苦しむ必要があります。

依存関係のその地獄

最初に考えるのは、pacman-Sパンドックを作成することです。 うーん、ダメ。 公式リポジトリにはパッケージがなく、AURのパッケージは、大量の依存関係が必要なため、機能しません。 Haskellについてすでに何か知っているなら、カバールがそれを解決すると思うでしょう。 はい、ただし予約が必要です。 これを行うには、以下を実行する必要があります。

sudo pacman -S ghccabal-インストールcabalアップデートcabalインストールpandoc

これは機能するはずですが、お勧めしません。 特に、Haskellの世界を掘り下げたい場合は、将来恐ろしい問題が発生する可能性があります。

ArchLinuxとその哲学についての不満を聞くのは確かに奇妙に聞こえますが、十分に開発された最後の環境を提供し、リポジトリからhaskell-platformパッケージを削除したことはまったくナンセンスなようです。 互いに互換性があります; ghcとcabal-installが更新された理由。

cabalを使用して他のパッケージをインストールする場合は、パッケージをダウンロードすることをお勧めします antiguos ghcとcabal-からインストール アーチロールバックマシン.

簡単なパックマン-Uでインストールします パケットパス そして、ファイル/etc/pacman.confで、システムを更新するときにpacmanにそれらを無視させます。 内側のセクション 無視するパッケージ.

これで、cabalを使用してpandocをインストールし、正常に機能させるために、次の行を.bashrcファイルに配置します。

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

以上です。 とてつもないものですが、問題は回避します。 ローカルにインストールする代わりに、他のパッケージから始めたい場合は、 hsenv 隔離された環境を作成し、Hakyllなどのインストールの頭痛の種を回避します。

そして、私があなたに警告したら、それは恐ろしいことです。 これはすべて、HaskellとCabalが、Rubyとそのバンドルやgemなど、他の言語がすでに取り除いている依存関係地獄をまだ解決していないためです。 とにかく、私がそれを借りているこの小さな解決策 イアン・ロス ハキルのグループの。

我慢して。 それは私たちのためにそれをコンパイルするので、それは長いインストールです。

使用と結論

ターミナルを利用して、次のような注文を送信します。

pandoc -o output-file.ext -i original-file.md

Markdown(* .md、私が使用する拡張子)は他の形式に置き換えることができ、.extは出力で使用可能な他の形式に置き換えることができます。

私にとって、これを実際に毎日行うことは、特にOpenDocumentにエクスポートするのに大いに役立ちました。

そして、エコシステムは素晴らしいです。 MacFarlane自身がHaskellでwikiを開発しました。これは、Pandocがページを変換するために使用しますが、それは別の話です。 ちなみに、この投稿は、これまでに書いたほとんどの投稿と同様に、Pandocで誇らしげに書かれています。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   ガディ

    Markdownも使用しています。 KateとGeditには、構文を強調するためのプラグインをインストールできます。 次に、それをODTに変換するために、MultiMarkdownを選択します。これは、段落スタイルのドキュメントにコピーするときに、より快適になるように、「テキストを尊重する」という言い方が最も多いものです。 Pandocは私に同じ結果を与えていないか、少なくとも私はそれを行う方法を知りませんでした😛

    1.   

      –strictオプションをアクティブにすることで、Pandocに標準のMarkdownのみを取得させることができます。 それがあなたの言いたいことなら。 ただし、その主な利点は、フォーマット間の多様性です。
      彼らがそれを使用していることを私が見たことが少しあるので、それをお勧めします、それは私を傷つけませんでした。

  2.   エルナモジャズ

    私はそれを使ってLaTeXからreStructuredTextに移行しました。 彼はそれを非常にうまくやっています(ほとんどの場合xD)

  3.   MSX

    興味深い、共有してくれてありがとう。