Djot

軽量マークアップ言語

Djot/dʒɑt/)は、CommonMarkの複雑で効率的に解析することが難しい構文を改善することを目的とした軽量マークアップ言語である[3]。Djotは2022年にPandocの作者でありCommonMarkの標準化グループのメンバーでもあるジョン・マクファーレイン英語版によって作成された[4][5]

Djot
拡張子.dj[1]
MIMEタイプ不明な値
開発者ジョン・マクファーレイン英語版
最新版
0.2.0
(2023年1月3日 (16か月前) (2023-01-03)[2])
種別軽量マークアップ言語
派生元CommonMark
オープン
フォーマット
Yes
ウェブサイトdjot.net ウィキデータを編集

Djotの機能の殆どはCommonMarkから派生しているが、説明リスト、脚注、表、いくつかの新しい種類のインライン書式設定、数式、スマート句読点を含むより多くの機能が含まれている[3]

オリジナルのリファレンス実装スクリプト言語Lua)で書かれているが、Djotは効率的に解析できるように設計されているので非常に高速に構文解析される[6]

DjotのコードとドキュメンテーションはMIT Licenseで公開されている[7]

CommonMarkとの違い

Djotの構文はCommonMarkの構文に似ているが、いくつかの違いがある[8]

空白行

CommonMarkではブロックレベル要素の周りに空白行は不要だが、Djotでは必要である。

例:

入力CommonMark処理系によって生成される対応するHTMLDjot処理系によって生成される対応するHTML
# 見出し段落。
<h1>見出し</h1><p>段落。</p>
<h1>見出し 段落。</h1>
# 見出し段落。
<h1>見出し</h1><p>段落。</p>
<h1>見出し</h1><p>段落。</p>
入力CommonMark処理系によって生成される対応するHTMLDjot処理系によって生成される対応するHTML
* 果物  * リンゴ  * バナナ
<ul>  <li>果物    <ul>      <li>リンゴ</li>      <li>バナナ</li>    </ul>  </li></ul>
<ul>  <li>果物  * リンゴ  * バナナ  </li></ul>
* 果物  * リンゴ  * バナナ
<ul>  <li><p>果物</p>    <ul>      <li>リンゴ</li>      <li>バナナ</li>    </ul>  </li></ul>
<ul>  <li>果物    <ul>      <li>リンゴ</li>      <li>バナナ</li>    </ul>  </li></ul>

見出し

DjotにはSetext英語版形式の見出し(=-を使う)はなく、ATX形式の見出し(#を使う)だけがある。

例:

CommonMarkの構文を使用したテキストDjotの構文を使用したテキスト生成される対応するHTML
見出し=======サブ見出し-----------
# 見出し## サブ見出し
<h1>見出し</h1><h2>サブ見出し</h2>

強調

CommonMarkは1つの*または_を強調に使用し、2つの*または_を強い強調に使用する。Djotは1つの_を強調に使用し、1つの*を強い強調に使用する。

例:

CommonMarkの構文を使用したテキストDjotの構文を使用したテキスト生成される対応するHTML
テキストの属性 _強調_**強い強調**
テキストの属性 _強調_*強い強調*
<p>テキストの属性 <em>強調</em><strong>強い強調</strong></p>

リンク

CommonMarkとは異なり、Djotにはリンクにタイトルを追加するための特別な構文はない。タイトルの追加には一般的な属性構文を使うことができる。

例:

CommonMarkの構文を使用したテキストDjotの構文を使用したテキスト生成される対応するHTML
[リンク](http://example.com "タイトル")。
[リンク](http://example.com){title="タイトル"}。
<p><a href="http://example.com" title="タイトル">リンク</a></p>


Djotの構文を使用したテキストDjot処理系によって生成される対応するHTMLブラウザでのレンダリング結果
# 見出し## サブ見出し段落は空白行によって区切られます。行末のバックスラッシュは\改行を引き起こします。
<h1>見出し</h1><h2>サブ見出し</h2><p>段落は空白行によって区切られます。</p><p>行末のバックスラッシュは<br>改行を引き起こします。</p>
見出し
サブ見出し

段落は空白行によって区切られます。

行末のバックスラッシュは
改行を引き起こします。

テキストの属性 _強調_*強い強調*`モノスペース`。水平線:* * *
<p>テキストの属性 <em>強調</em><strong>強い強調</strong><code>モノスペース</code></p><p>水平線:</p><hr>
テキストの属性 強調強い強調モノスペース

水平線:


順序付きリスト内に入れ子された順序なしリスト:  1. 果物     * リンゴ     * バナナ  2. 野菜     - ニンジン     - ブロッコリー
<p>順序付きリスト内に入れ子された順序なしリスト:</p><ol>  <li>果物    <ul>      <li>リンゴ</li>      <li>バナナ</li>    </ul>  </li>  <li>野菜    <ul>      <li>ニンジン</li>      <li>ブロッコリー</li>    </ul>  </li></ol>
順序付きリスト内に入れ子された順序なしリスト:
  1. 果物
    • リンゴ
    • バナナ
  2. 野菜
    • ニンジン
    • ブロッコリー
[リンク](http://example.com)。![画像](Icon-pictures.png){title="アイコン"}> Djotはブロック引用に電子メール形式の文字を使います。>> 複数の段落にする場合は個別に行頭に引用符を追加する必要があります。インライン`<abbr title="Hypertext Markup Language">HTML</abbr>`{=html}タグなどの未加工のコンテンツは明示的にマークする必要があります。
<p><a href="http://example.com">リンク</a></p><p><img alt="画像" title="アイコン" src="Icon-pictures.png"></p><blockquote><p>Djotはブロック引用に電子メール形式の文字を使います。</p><p>複数の段落にする場合は個別に行頭に引用符を追加する必要があります。</p></blockquote><p>インライン<abbr title="Hypertext Markup Language">HTML</abbr>タグなどの未加工のコンテンツは明示的にマークする必要があります。</p>
リンク

Djotはブロック引用に電子メール形式の文字を使います。

複数の段落にする場合は個別に行頭に引用符を追加する必要があります。

インラインHTMLタグなどの未加工のコンテンツは明示的にマークする必要があります。

実装

Djotの実装
名前ライセンス言語リポジトリ説明
djot.jsMIT LicenseTypeScripthttps://github.com/jgm/djot.jsTypeScriptによるオリジナルのリファレンス実装の再実装。
djot.luaMIT LicenseLuahttps://github.com/jgm/djot.luaオリジナルのリファレンス実装。
JotdownMIT LicenseRusthttps://github.com/hellux/jotdownRustのライブラリとして実装されたプル・パーサー。
DjotaBSD 3-clause licenseProloghttps://github.com/aarroyoc/djotaPrologによる実装。
djothsMIT LicenseHaskellhttps://github.com/jgm/djothsHaskellのライブラリとコマンドラインツール。
godjotMIT LicenseGohttps://github.com/sivukhin/godjotGoによる実装。

使用

  • Pandocはバージョン3.1.12以降で入力フォーマットと出力フォーマットとしてDjotに対応している[9]

脚注

外部リンク

🔥 Top keywords: メインページ飯豊まりえ高橋一生石丸伸二特別:検索キダ・タロー廣瀬智紀弥助三淵嘉子川栄李奈羽賀研二葛西美空岸辺露伴は動かない秋元優里鈴村健一ユージ虎に翼山崎育三郎STARTO ENTERTAINMENT乙黒えり出口夏希窪塚愛流木田美千代緒方賢一Never young beach田村正和ニューカレドニア猿の惑星シリーズマイケル・ゴードンプロポーズ大作戦 (テレビドラマ)スロバキア麿赤兒浅野温子笠松将竜とそばかすの姫堀田賢慎ラナルド・マクドナルド伊倉愛美仲野太賀