iA Writer の次の大型アップデートを作るために、私たちは懸命に取り組んできました。ついにその到着をお知らせできることをうれしく思います。iA Writer 4 は、文書の扱い方にまったく新しい次元を加えます。これがどう動くのかをお見せするのが楽しみで、少し緊張もしています……
みんなが 本当に 欲しかったものは?
iA Writer には毎日、機能要望が届きます。アプリで何ができるか、何ができるようになりそうか、その幅は本当にさまざまです。私たちは非常に集中したソフトウェアを作っているので、ユーザー要望の傾向を分析することは、どこを改善すべきかを理解する助けになります。みんなが欲しかったのは明らかでした。
- 長文を扱うもっと良い方法
- 画像の完全なサポート
長文の構造
私たちはプレーンテキスト形式に完全にコミットしています。過去、現在、未来に耐えるテキスト形式についての考えは、マルチチャネル・テキスト処理 の投稿でかなり詳しく触れました。
プレーンテキストで長文をどう構造化し、リンクし、ネストし、整理するのか? 方法は 2 つしかありません。既存の軽量マークアップを使うか、自分で作るかです。私たちは、単純にファイル名を追加すればうまくいくと考えました。そうすれば、ローカル形式の利点を失わずに、コンテンツのブロックを動かせます。transclusion という確立された方法1 が有望に思えましたが、見つけた実装はどれも難解な記号に頼っていました。
{{filе}}
<<[filе]
(filе:)
どの構文が最適かを検討していたとき、John Gruber のコメントを見つけました。彼は Markdown の画像構文が自分の最大の失敗だと述べて2、代替案3 に触れていました。
いい Markdown の img 構文として私がいちばんいいと思うのは、.jpg/.png/.gif などで終わる URL をそのまま貼ることだ。
私たちはこのアイデアが気に入りました。
プレーンテキストの中の画像
iA Writer 4 で画像を追加するには、空行にパスを書きます。

画像のキャプションには、引用符や丸括弧を使います。

この形式は、ほかのファイル形式にも同じように使えます……
表
Markdown の表を手で書くのはつらいです。一方で、Numbers や Excel のような表計算ソフトは、複雑な数式つきの表を簡単に作れます。こうした表を出力する長年の標準は CSV(comma separated value)形式です。Excel で表を作り、それをプレーンテキストの CSV として書き出せます。そしていまや、画像と同じように iA Writer から csv ファイルを参照できます。

その振る舞いを再現した最初のプロトタイプを使ったとき、これが進むべき道だとわかりました。transclusion の感触は、ただしっくりくる 以外に表現しにくいものです。単純でわかりやすい構文から始めることが、何度も成果をもたらしてくれました。
テキストの中のテキストの中のテキスト……
これらすべての前から、私たちはしばらく独自に inception と呼ぶ概念を開発していました。あの有名なネットミームを思わせたので、社内では冗談のようにそう呼んでいたのです。

ずっと後になって、それにはすでに名前があることを知りました。transclusion です。transclusion は、Hypertext の父 Ted Nelson によって最初に説明されました。簡単に言えば、transclusion とは、冗長さなしにテキストの中へテキストを直接埋め込む方法です。
「…transclusion とは、文書の一部が、元の文書以外の複数の場所に、実際にコピーされることなく存在できることを意味する。」4
この新しく見つけた概念を手にして、私たちはそれが単なる埋め込み以上の可能性を持っていることに、少しずつ気づきました。

画像、表、テキストを埋め込むことができます。テキストのネストと埋め込みは、1 層で止まりません。
- 本は章から作れます
- 章はさらにいくつかの節から作れます
- 節は、1 つの引用で構成されたテキスト断片を中心に作れます
- 同じ引用を、同じ本文の中で何度でも再利用できます
この text inception を、正気が続く限り繰り返してください。
コンテンツブロック
iA Writer 4 では、さまざまな改良を行いました。その肝は、この新しいファイル参照構文です。挿入したファイル参照は、画像でも表でもプレーンテキストでも、文書に 1 つのコンテンツブロックを追加します。これらの Content Blocks は、順序づけ、積み重ね、連結が簡単にできます。
この構文は Markdown の自然な拡張だと考えていますし、ほかのアプリにも使ってもらえたらうれしいです。逸脱であることは少し不安ですが、試してみたいし、友達ができることを願っています。話を進めるために、GitHub に introductory spec を公開しました。ファイル transclusion に基づく Content Blocks が、iA Writer を超えて広まることを願っています。いつの日か Markdown エディタはみんなこう動くかもしれません。でも IBM がかつて言ったように、なぜ待つのでしょう?
脚注
- Transclusion (Wikipedia) ↩
- John Gruber のツイート ↩
- John Gruber のツイート ↩
- Theodor Holm, *Literary Machines, The Report on, and of, Project Xanadu*, 1992. 序文。 ↩