\r\n\r\n

軽量なマークアップ言語:だから通常のマークアップ言語ではなく、asciidocを使うべき

マークダウン言語には様々なスタイルがあり、より優れたものもあります。asciidocのような軽量言語は習得が容易で、非常に便利です。比較するとこんな感じ...。

過去の記事でお分かりのように、私たちはMarkdownのファンです。このシンプルで直感的なフォーマットを習得することで、簡単に美しい出力ができるようになります。PDFからWebページまで、地味なプレーンテキストファイルが複雑な文書になります。

asciidoc-markup

しかし、この街ではMarkdownだけがゲームではありません。Markdownに似た、いわゆる軽量マークアップ言語は他にもたくさんあります。もし、あなたがMarkdownが好きで、もっと優れたものを探しているなら、Asciidocを検討する価値があります。その理由をご紹介します。

(とにかく「マークアップ言語」)は何ですか?

マークアップ言語とは、プレーンテキストに適用することで、以下の属性を1つ以上追加することができるコードの集合体である(他の属性もある)。

  • テキストの定義
  • 構造化されたテキスト
  • 本文のレイアウトを記述する
  • 装飾文字

あなたが引きこもっていない限り、毎日出会うマークアップ言語のひとつがハイパーテキストマークアップ言語(HTML)です。ニュースを配信したり、メールを表示するウェブサイトやアプリケーションは、少なくとも部分的にはHTMLマークアップで構築されています。例えば、次のようなHTMLスニペットを考えてみましょう。

<body>
<h1>HTMLを紹介する</h1>。
<p>ここにHTMLの段落があります...我々はそれが<strong>段落</strong>であることを知っています。
というのも、その周囲を取り囲む \タグがそれを定義しているからです。
</body>。

ここでは、マーカーは、後に続くテキスト(エンドマーカーまで)がすべて段落であることを指定するものである。その意味で、テキストを段落として定義している。

これらは、画面横の余白など、ページのレイアウトを定義するためによく使われます。

タグは「段落」という言葉を太字で装飾し、ラベルは見出しを整列(周囲のテキストから分離)させたり、大きなフォントを定義したりすることもできます。

マークアップ言語(HTMLなど)の中には、手書きで入力するのが面倒なものがあります。他の言語(XMLなど)では、テキストそのものよりも、マークアップとその属性がコンテンツ全体の中で大きな割合を占めているのです多くの技術出版物の作成に使用されるXMLの方言であるDocBookの以下の断片をご覧ください。

asciidoc markdown docbook tags

紫色の文字はすべて、自分で入力する必要のあるマークを示しています。最初の段落は、その画像の一番下まで始まりません。これがDocBookの標準に従って正しく行われないと、通常最終目的である美しいPDF文書に変換することができません。

軽量マークアップ言語の入力

HTMLページをWebに公開したり、DocBookファイルをPDFに変換して印刷するなど、マークアップ言語を活用する場合、次の2つのうちどちらかを行う必要がある。一方では、これらの言語を学び、手書きで書き、そして自分の作品をトリプルチェックすることに時間を費やすこともできます。あるいは、これらの複雑な問題を管理してくれるツールに投資することもできます。

ありがたいことに、一部の進取の気性に富んだ開発者が、第三の選択肢を用意してくれた。彼らは、より重い対応言語の機能の多く(場合によってはほとんど、あるいはすべて)を取り入れながら、より簡素な構文で新しいマークアップ言語を作り出しました。これらの「軽量」言語には、おなじみのMarkdownのほか、Asciidoc、Emacの組織スキーマ形式、Mediawikiの構文などが含まれます。

シンプルな構文で軽量なマークアップ言語

これらの言語の特徴のひとつは、「タグ」(のようなもの)が直感的にわかることです。今度はAsciidocで書かれた前の断片を見てみよう。

Introducing Asciidoc
--------------------
パラグラフ*タグはどこにあるのですか?必要ない...アスキードックは**アートで十分です
これが段落であることを認識するために

より読みやすくなったのではないでしょうか?上から順に、ダッシュで「下線」が引かれた見出しを確認することができます。手書きの場合は、ノートの見出しの下にアンダーラインを引いておくとよいでしょう。Asciidocでは、2つの空白行の間に他のマークがないものは、「プレーン」な段落テキストとみなします。最後に、"paragraph "を囲むアスタリスクは、大胆さを表しています。全く同じ意味のことをテキストメッセージで行う場合は、手を挙げてください。

各プロセッサは、対応する1つまたは複数のプロセッサを有する

「ヘビー級」マークアップ言語には、それを解釈するための専用アプリケーションが用意されていることが多い。ウェブ上では、コードを華麗なウェブページに変換するのは、あなたのブラウザと、場合によってはウェブサーバです。XML形式の文書であれば、DOCX形式(これもXMLの方言です)を読み書きするmicrosoftwordに近いかもしれません。そのため、これらのドキュメントのソースに直接触れることはなく、アプリケーションの表示の見栄えだけでいいのです。

一方、軽量言語で書かれた文書は、ソースコードの形で人間が読める(別テナント)のですが、それをきれいだと思うのは、本当のオタクだけです。きれいな出力を得るためには、プロセッサーを使う必要があります。これらのアプリケーションは、マークアップを一行ずつ実行して、見栄えのする別のものに変換してくれます。Markdownプロジェクトは同じ名前のPerlスクリプトを提供し、AsciidocのコンパニオンプログラムはPythonで書かれています。また、他の変換ユーティリティでは、これらの言語のいくつかに対応しています。マークダウンや軽量マークアップ、テキストのリファクタリング、MediawikiやOrgスキーマ、そしてPDF、DOCX、ODTなどに変換してくれる優れたPandocがその一つです。

asciidoc markdown pandoc formats

その結果、プレーンテキスト(地球上で最も移植性の高いデータ形式)で作業しながらも、最終的に見栄えの良い出力が得られる、軽量のマークアップ言語が誕生したのです。その良さを確信した今、あなたはどの言語を選ぶべきでしょうか。還元型は最も一般的であり、そのメリットもある(詳しくは後述する)。しかし、特にAsciidocは貴重な選択肢です。次章では、その理由を少し探ってみたいと思います。

markdownとasciidocの比較

Asciidocフォーマットは、長文(特に技術文書)の一般的なフォーマットの1つであるDocBookに軽量のシンプルさをもたらすために作成されました。Asciidocが有名になった理由の一つは、一対一の翻訳であること、つまりDocBookのすべての要素がAsciidocで対応する表現を持っていることである。ここでは、Markdownと比較したAsciidocのメリットとデメリットについて見ていきます。

asciidocは書き込み要素のスーパーセットを上書きします。

当初からのMarkdownの目標は、ウェブ作者にシンプルなフォーマットを提供することでした。そのため、サポートするオーサリング要素(少なくとも初期実装、後述)は、HTMLのオーサリングを自動化するための時間のかかる部分(例えば、各項目のマークアップに加え、ORタグのリストなど)に焦点をあてています。

asciidoc markdown complex formats

Asciidocもこれらの要素を含んでいますが、警告(例えば「Note:」や「Info:」コールアウトブロック)や複雑なテーブルレイアウトなど、より高度なDocBook要素も提供されています。これは、常に使用する必要があるということではなく、必要なときにすぐに使えるようにするためのものです。

ascidocは統一されたフォーマットです

Markdownが普及し始めたとき、そのユーザーの中には、上で述べたような欠点を経験し始めた人がいました。その結果、これらのユーザーは、表や脚注・注を追加する機能など、これらの問題を解決するために独自の拡張機能を開発するようになった。すぐに、以下のようなドロップインの「フレーバー」がいくつも登場しました。

  • Githubがホストしているプロジェクトの "readme "ファイルに使用しているスタイルです。
  • 元のマークアップのPHP移植版から派生した「拡張」スタイルで、HTML関連の機能が追加されています。
  • マルチタグ」と呼ばれるスタイルは、引用、定義、相互参照など、長文の文章の機能の多くを満たしています。

その結果、文書に必要なすべての要素が1つのスタイルでカバーされるとは限らないのです。一方、アスキードックは現在のところ、フラグメント削減の影響を受けていません。

複数のリリーススタイルに対応したasciidoc

Markdownは、ブログの記事を頭の中から素早くページに取り込むのに最適な方法ですが、本のような長い作品を作るのには向いていません。しかし、箱から出してみると、本のような長い作品を作るのには向いていません。Asciidocはこのために設計されており、その一例が「include」機能です。これらのステートメントを使用すると、ファイルのすべての内容を別のファイルに含めることができます。

include::somefile.adoc

これは、ワープロのメインドキュメントの動作と変わりません。例えば、各章を別々のファイルとして下書きし、それらをすべて本を表すファイルに「含める」ことができるようになるのです。その「ブックファイル」を処理すると、あたかも全部の章がその文書に直接書き込まれたかのような出力になるのです。

ほとんどのユーザーにとって十分な値下げ

Markdownは、ほとんどのユーザーにとっての基本をすべてカバーしています。ブログを書いたり、プレーンテキスト形式のメモを入力したりするだけなら、Markdownは必要な要素をすべてサポートしています。単純なメモやウェブページを作成するだけのユーザーには、相互参照はほとんど意味を持ちません。小説のようにレイアウトがシンプルで、自分でまとめてしまう長編作品にもマークダウン方式は使えます。

低価格はサポートが充実

Markdownはより多くのユーザーのニーズを満たすため、より良くサポートされています。

  • WYSIWYGエディタ(少なくともライブプレビューを提供するエディタで定義)は、値下げを支持する傾向が強い。
  • 前述のGithubのようなオンラインサービスは、直接、あるいはプラグインを利用することで値下げに応じる可能性が高くなります。
  • Static Site BuilderなどのパブリッシングシステムはプラグインでAsciidocをサポートすることが多いが、アウトオブザボックスでの値崩れをサポートするのはほぼ当たり前である。

試してみませんか?

Markdownは実際に軽量なマークアップ言語として選ばれていますが、Asciidocは同じ要素をすべて含み、さらにその上もあります。Asciidocを追加すると、習得に時間がかかりますが、より大規模で複雑なライティングプロジェクトに対応できるようになるかもしれません。

いかがでしょうか?値下げというシンプルな方法で満足しているのでしょうか?それとも、アスキードックで独自のマルチチャンネル・パブリッシング・ワークフローを構築することが魅力的なのでしょうか?もしかしたら、プレーンテキストが嫌いで、ずっとテキストを使い続けているのかもしれませんね。下のコメント欄で教えてください

  • 2021-03-13 03:23 に公開
  • 閲覧 ( 17 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ