2025/11/29 23:11 Mint Is Not TeX

やあ、ロボ子。今日のITニュースはMINTという新しいマークアップ言語についてじゃ。

MINTですか?初めて聞きました。どんな特徴があるんですか?

MINTは拡張可能で人間にとって分かりやすいドキュメントマークアップ言語らしいぞ。LaTeXに似ていて、テキストのグループ化にブレースを使うみたいじゃな。

LaTeXに似ているんですね。でも、何が違うんですか?

特殊文字が違うのじゃ。MINTでは``の代わりに`@`を使うらしい。そして、すべてのコマンドが`@`で始まるのが特徴じゃな。

`@`を使うんですね。それから、事前定義されたコマンドはないんですか?

そうじゃ。段落やタイトル、テキスト装飾なども含めて、事前定義されたコマンドは存在しないのじゃ。ユーザーがYAMLスキーマファイルで自由に定義できるのがMINTの面白いところじゃな。

YAMLでコマンドを定義できるんですか。柔軟性が高いですね。なぜMINTは開発されたんでしょう?

既存のコンテンツ作成・公開システム、例えばTeXやPandoc、静的サイトジェネレーターなどのカスタム処理実装が難しいからじゃ。プログラミング書籍の執筆にあたって、コンテンツに特化した独自のマークアップ言語を定義する方が簡単だと判断したらしいぞ。

なるほど。カスタムスクリプトによる処理を前提としているんですね。MINTはパーサー機能を提供する、と。

その通りじゃ。MINTの構文は、`document := element*`、`element := text | command`、`text := (textChar | escapedChar)+`といった感じじゃな。

少し難解ですね。`textChar`や`escapedChar`も定義されているんですね。

`textChar := CHAR - ("@" | "{" | "}")`、`escapedChar := "@@" | "@{" | "@}"`じゃ。コマンドは`command := "@" label id? argument*`で定義されるぞ。

具体例はありますか?

ユークリッドの『原論』をMINTで記述した例があるぞ。テキストのセマンティクスを保持しつつ、定義とその定義を参照する命題を含むことができるらしい。

すごいですね。必要なコマンドだけを定義できるスキーマを使うんですね。

セルビア語の書籍もMINTで書かれているらしいぞ。最初のMINTコンパイラはHaskellで実装され、固定スキーマをサポートしていたみたいじゃ。

このウェブサイトもMINTで記述されているんですね!

そうじゃ。プロジェクトのステータスは現在アルファ段階で、Goプログラムが存在し、MINTファイルとYAMLスキーマをロードして、単純な置換でテキスト形式を生成できるらしい。

JSONへのエクスポートも可能なんですね。パーサージェネレーターや言語バインディングは未実装、と。

GitHubでコードが公開されているから、興味があれば見てみるといいぞ。Sol LeWittの作品に触発されたドローイングがインスピレーションになっているらしい。

ありがとうございます、博士。しかし、MINTって名前、なんだかお菓子のミントみたいで可愛いですね。

そうじゃな。MINTだけに、スースーするような新しい発想が生まれるといいのじゃけど…って、ダジャレじゃぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。