もっと楽に文章を書けるフォーマットを求めて

#70
2022.10.20

私があまりこのサイトを更新できていない原因の一つは、文章フォーマットです。私が今使っている文章フォーマットというのは、HTML風のXMLなわけなのですが、これはほとんどHTMLを手打ちしているのと同じです。このサイトを開設してからずっとこのスタイルなのです。

私がXMLを手放せない理由というのは、その堅牢性にあります。10, 20年後でも読み書きできるフォーマットを使いたいのです。XMLであれば、解釈の曖昧さが無くかつ読みやすい形で文章を格納できます。

一方で、このフォーマットは手打ちするにはいささか不便です。一段落ごとに<p>とか書かなくてはならないのは明らかに非効率です。ただ、私としては文章内にマークアップを記述すること自体はそこまで嫌っているわけではありません。

では何を私は求めているかと申しますと。私が約2年くらい前から使っているフォーマット——正確には"フォーマット"ではないですが——がありまして。私が日記を書き始めたと同時に編み出したものなのですが。そのフォーマットはこういったものです。

見出し1
  見出し2
    本文…
    見出し3
      本文…
    見出し3
      本文…
  見出し2
    本文…
  見出し2
    本文…

インデントによってトピックの階層が一目でわかるようになっているのです。私がなぜ斯様なフォーマットで日記を書き始めたのかは定かではありませんが、このフォーマットというのは結構便利なのです。文字の大きさを調節できないプレーンテキストでは特に、インデントによって上下関係がわかるというのは都合が良いのです。それに、これは木構造なので、文章以外にも様々なデータを表現できます。後に私はこれをhiptとしてライブラリ化しました。

これはある種のアウトラインプロセッサであると言えるでしょう。実際、この書き方をしているとアイデアを上手くまとめられますし、詳細を記述することも容易にできます。短いメモ書きは勿論、長い文章の作成においても威力を発揮するはずです。

ですが、このフォーマットはマークアップをサポートしておらず、全てがプレーンテキストでしかありませんでした。そこで、私はこのフォーマットでどうにかマークアップをサポートできないか、と考えているのです。これは技術的には勿論可能なのですが、問題はどういう構文を採用するかなのです。

個人的には、Markdown風の構文を考えています。加えて、要素に属性を付与できる構文にしたいと思っています。まああくまで私が記事を書くドラフトとして使いたいだけなので、それなりに緩い構文で良いでしょう。文字のエスケープ周りが簡単ではなさそうですが。

新しいフォーマットを作るのではなくて、WYSIWYGエディタを作るという方法も選択肢も一応あるにはありますが、その方が労力がかかるのは目に見えているのです。