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

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

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

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

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

CommonMarkとの違い

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

空白行

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

例:

入力 CommonMark処理系によって生成される対応するHTML Djot処理系によって生成される対応するHTML
# 見出し
段落。
<h1>見出し</h1>

<p>段落。</p>
<h1>見出し 段落。</h1>
# 見出し

段落。
<h1>見出し</h1>

<p>段落。</p>
<h1>見出し</h1>

<p>段落。</p>
入力 CommonMark処理系によって生成される対応するHTML Djot処理系によって生成される対応する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.js MIT License TypeScript https://github.com/jgm/djot.js TypeScriptによるオリジナルのリファレンス実装の再実装。
djot.lua MIT License Lua https://github.com/jgm/djot.lua オリジナルのリファレンス実装。
Jotdown MIT License Rust https://github.com/hellux/jotdown Rustのライブラリとして実装されたプル・パーサー。
Djota BSD 3-clause license Prolog https://github.com/aarroyoc/djota Prologによる実装。
djoths MIT License Haskell https://github.com/jgm/djoths Haskellのライブラリとコマンドラインツール。
godjot MIT License Go https://github.com/sivukhin/godjot Goによる実装。

使用

脚注

  1. ↑ “File extension” (英語). github.com. 2023年1月24日閲覧。
  2. ↑ “djot 0.2.0” (英語). GitHub. GitHub, Inc. (2023年1月3日). 2024年3月5日閲覧。
  3. 1 2 “Djot (/dʒɑt/)” (英語). djot.net. 2022年8月13日閲覧。
  4. ↑ MacFarlane, John (2022年7月11日). “Initial commit” (英語). github.com. 2022年8月13日閲覧。
  5. ↑ MacFarlane, John. “Tools” (英語). johnmacfarlane.net. 2022年8月13日閲覧。
  6. ↑ “README.md” (英語). github.com. 2023年1月24日閲覧。
  7. ↑ “License” (英語). github.com. 2022年8月13日閲覧。
  8. ↑ “Quick Start for Markdown users” (英語). github.com. 2022年8月14日閲覧。
  9. ↑ “pandoc 3.1.12 (2024-02-14)” (英語). pandoc.org. 2024年3月5日閲覧。

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS B79