iA Writer の次の大型アップデートを作るために、私たちは懸命に取り組んできました。ついにその到着をお知らせできることをうれしく思います。iA Writer 4 は、文書の扱い方にまったく新しい次元を加えます。これがどう動くのかをお見せするのが楽しみで、少し緊張もしています……

みんなが 本当に 欲しかったものは?

iA Writer には毎日、機能要望が届きます。アプリで何ができるか、何ができるようになりそうか、その幅は本当にさまざまです。私たちは非常に集中したソフトウェアを作っているので、ユーザー要望の傾向を分析することは、どこを改善すべきかを理解する助けになります。みんなが欲しかったのは明らかでした。

  1. 長文を扱うもっと良い方法
  2. 画像の完全なサポート

長文の構造

私たちはプレーンテキスト形式に完全にコミットしています。過去、現在、未来に耐えるテキスト形式についての考えは、マルチチャネル・テキスト処理 の投稿でかなり詳しく触れました。

プレーンテキストで長文をどう構造化し、リンクし、ネストし、整理するのか? 方法は 2 つしかありません。既存の軽量マークアップを使うか、自分で作るかです。私たちは、単純にファイル名を追加すればうまくいくと考えました。そうすれば、ローカル形式の利点を失わずに、コンテンツのブロックを動かせます。transclusion という確立された方法1 が有望に思えましたが、見つけた実装はどれも難解な記号に頼っていました。

{{filе}}
<<[filе]
(filе:)

どの構文が最適かを検討していたとき、John Gruber のコメントを見つけました。彼は Markdown の画像構文が自分の最大の失敗だと述べて2、代替案3 に触れていました。

いい Markdown の img 構文として私がいちばんいいと思うのは、.jpg/.png/.gif などで終わる URL をそのまま貼ることだ。

私たちはこのアイデアが気に入りました。

プレーンテキストの中の画像

iA Writer 4 で画像を追加するには、空行にパスを書きます。

screenshot1.png

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

screenshot2.png

この形式は、ほかのファイル形式にも同じように使えます……

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

screenshot3.png

その振る舞いを再現した最初のプロトタイプを使ったとき、これが進むべき道だとわかりました。transclusion の感触は、ただしっくりくる 以外に表現しにくいものです。単純でわかりやすい構文から始めることが、何度も成果をもたらしてくれました。

テキストの中のテキストの中のテキスト……

これらすべての前から、私たちはしばらく独自に inception と呼ぶ概念を開発していました。あの有名なネットミームを思わせたので、社内では冗談のようにそう呼んでいたのです。

inception_meme.jpg

ずっと後になって、それにはすでに名前があることを知りました。transclusion です。transclusion は、Hypertext の父 Ted Nelson によって最初に説明されました。簡単に言えば、transclusion とは、冗長さなしにテキストの中へテキストを直接埋め込む方法です。

「…transclusion とは、文書の一部が、元の文書以外の複数の場所に、実際にコピーされることなく存在できることを意味する。」4

この新しく見つけた概念を手にして、私たちはそれが単なる埋め込み以上の可能性を持っていることに、少しずつ気づきました。

screenshot4.png

画像、表、テキストを埋め込むことができます。テキストのネストと埋め込みは、1 層で止まりません。

  • 本は章から作れます
  • 章はさらにいくつかの節から作れます
  • 節は、1 つの引用で構成されたテキスト断片を中心に作れます
  • 同じ引用を、同じ本文の中で何度でも再利用できます

この text inception を、正気が続く限り繰り返してください。

コンテンツブロック

iA Writer 4 では、さまざまな改良を行いました。その肝は、この新しいファイル参照構文です。挿入したファイル参照は、画像でも表でもプレーンテキストでも、文書に 1 つのコンテンツブロックを追加します。これらの Content Blocks は、順序づけ、積み重ね、連結が簡単にできます。

この構文は Markdown の自然な拡張だと考えていますし、ほかのアプリにも使ってもらえたらうれしいです。逸脱であることは少し不安ですが、試してみたいし、友達ができることを願っています。話を進めるために、GitHub に introductory spec を公開しました。ファイル transclusion に基づく Content Blocks が、iA Writer を超えて広まることを願っています。いつの日か Markdown エディタはみんなこう動くかもしれません。でも IBM がかつて言ったように、なぜ待つのでしょう?

脚注


  1. Transclusion (Wikipedia) 
  2. John Gruber のツイート 
  3. John Gruber のツイート 
  4. Theodor Holm, *Literary Machines, The Report on, and of, Project Xanadu*, 1992. 序文。