豆腐メンタルは崩れない

小説家ワナビ視点で、主に執筆環境について書きます。

FoldingText ユーザーガイド超雑訳

https://itunes.apple.com/jp/app/foldingtext/id540003654?mt=12&uo=4&at=10l8JW&ct=hatenablog

  • 原文は2.0 build 732の「Help > User's Guide」
    • 1.2の同ドキュメントに比べ、大幅に改定されている。
    • 当然、ショートカットキーは2.0準拠になっている。
  • 使い方がマジわかんないので訳した。
    • 本アプリ特有でない一般的な情報や、一般ユーザーに不要と思われる部分は省いた。
    • 難しくてわかんないところも省いた。
    • 他にも見りゃ分かるとかめんどいところは適当に省いた。
    • 原文の微妙なニュアンスも省いた。
  • 正直、itemとかstructureとかthingとかsectionとかどう違うのかサッパリわからん。

Welcome to the User's Guide

省略


Part 1: FoldingText's Story

省略


Part 2: Markdown text editor

省略


Formatting Your Document

省略

Editing Your Document

省略

Auto-Formatted Lists

リスト編集中にリターンキーを押すと、リストに次のアイテムが追加され、必要なシンタックスが自動的に挿入される。これは順序なしリストと順序リストの両方で有効である。

Selecting Text

ショートカットキーでテキストの選択、その解除が可能。

Move Items Around

ショートカットキーで選択部分、またはカーソル行の移動が可能。

さらに、リストをブランチ単位で移動することも可能。

Placing the Text Cursor
  • URLをクリックするとリンク先をブラウザで開く。
  • 見出しの '#' をクリックするとその見出しをfoldする。

オプションキーを押しながらクリックするとこれらの動作をエスケープできる。

マルチカーソルに対応している。コマンドキーを押しながらクリックでカーソルを追加し、コマンドキーを押さずにクリックすると元に戻る。

Text Replacements

タブキーでテキストの置換を行う。

Typewriter Scrolling

省略

Folding Your Document to Hide Details

foldによってドキュメントの一部を非表示にすることができる。

  • 先頭の "#" をクリックするとfold。
  • 再度 "#" クリックするか、 "…" をクリックすると解除。
  • 「View > Fold (Command-/)」でfold。リストなどの、 "#" を含まない構造においても、この操作は有効。
  • 「View > Expand By Level」「View > Collapse By Level」は、選択されたアイテムの「子孫」をfoldする。これらのコマンドは徐々に詳細を見ることを可能にする。全選択してから実行するとわかりやすい。

foldを含むドキュメントの左上隅には、 "folds" を示す三角形が表示される。これをクリックすると、全てのfocusによる自動的foldを解除する。再度クリックすると、上記の方法により追加された手動foldを解除する。

「View > Show All (Command-Shift-A)」で、即時に全てのfoldを解除することができる。

Focusing Your Document to See Things

"Focus"はドキュメントの一部を非表示にする点でfoldに似ているが、「隠したいものではなく見たいものを指定する」点で異なる。

  • 「View > Focus (Command-U)」でカーソル位置のアイテムをfocusする。そのアイテムが子アイテムを持たない場合、そのアイテムの親アイテムをフォーカスする。
  • 「View > Focus Heading (Option-Command-U)」で、ポップアップ表示された見出しの一覧から選択することで、選択した見出しとその内容のみを表示する。
  • 「View > Focus Tag (Control-U)」で、ポップアップ表示されたタグの一覧から選択することで、選択されたタグを含むアイテムと構造のみを表示する。

これらの方法で追加された自動的foldは、手動foldと同じ方法で解除することができる。クリックすればよい。

Using FoldingText's Command Mode

コマンドモードでは、メニューアイテムから選択する代わりに、名称を入力することでコマンドを実行できる。この方法は高速で、キーボードショートカットを覚える必要がない。

  • 「Command-'」でコマンドモードを開く。
  • コマンド名を入力してリターンキーを押すと実行する。
  • エスケープキーを押すと終了する。

多くのプラグインは、その機能を発揮するために、コマンドモードを利用する。

Sharing Your Document

省略

初期設定では、本アプリは、一般的なMarkdownファイル拡張子の代わりに 'ft' を利用する。それは、次項で解説する、独自の追加フォーマットを利用するためである。

ただ、重要なことだが、本アプリのファイルもMarkdownファイルもただのプレーンテキストであるから、あらゆるテキストエディタで開くことができる。同様に、あらゆるプレーンテキストを本アプリで開くことができる。


Part 3: Plain Text Productivity

私がこのプロジェクトを開始した時、そのゴールは単なるMarkdownエディタを作ることではなかった。私はプレーンテキストで働くことが好きで、まさにそのためのよりより場所を求めていた。私のゴールはプレーンテキスト生産性なのだ!

これから、本アプリの拡張Markdown書式が、どのようにプレーンテキスト生産性のための総合的ツールを作成するかを解説する。例としてはこんな感じ:

Jesse's.todo - Show an example @done - Describe how modes work - Describe tags and properties

このように、ToDoリストができる。これは、本アプリがMarkdownに追加した3つのものによって可能になっている。

  1. Modes. 上記の例でいうと ".todo" が、その下部のテキストに "todo" 機能を与える。例として、順序なしリストはチェックボックスとして表示される。 ".todo" を削除すると、この機能は失われる。

  2. Metadata. Modes はしばしば追加の情報を必要とする。例えば、 "todo" mode はタスクがいつ実行されたかの情報が必要である。そのため、このメタデータを格納するための "@done" tagを追加してある。

  3. Node Paths. これにより、ドキュメントをいい感じにfocusすることができる。例えば、node pathを使えば、 "@done" タグを付けられていないToDoアイテムのみを表示することができる。

それは本アプリのプレーンテキスト生産性に対するビジョンでもある:構造化テキストのためのMarkdownメタデータのための標準的シンタックス、アプリの振る舞いをカスタマイズするためのモード、focusのためのノードパス。

Modes for Custom Behavior

todoモードに限らず、モードをインストールすることで、本アプリを拡張することができる。

Tags and Properties for Metadata

本アプリにおいて、見出し、リスト、パラグラフは "things" である。 "things" に追加の情報を与えたい場合、タグとプロパティのシンタックスを利用することができる。 "@done" タグのように。

  • タグを作成するには、"@"を入力する。続くテキストがタグ名になる。
  • タグにバリューを割り当てるには、 "(value)" をタグの直後に入力する。例えば、 @due(2012-11-26) のように。
  • タグをfocusするには、タグ名をクリックする。バリューをクリックすると、そのタグおよびバリューを持つnodesのみをfocusする。

以下の言葉は、タグ名として利用できない。"id", "class", "type", "line", "mode", "modeContext", "level", "property", "name", and "value"

プロパティは、専用の行に存在することを除けば、タグと似たようなものである。例えば、 .timer mode では、開始時刻を記録するために "start" プロパティを利用する。

  • プロパティを作成するには、専用の行に一単語のプロパティ名を入力し、続けて " : " (space, colon, space)を入力する。
  • バリューをプロパティに与えるには、 " : " シンタックスの後ろにバリューを入力する。

タグおよびバリューのテキストが長かったり複雑だったりしない場合、一般的には、プロパティの代わりにタグを利用する。タグおよびバリューが長く複雑になる場合、代わりにプロパティを利用することを考えてほしい。

※訳者による補足

  • 簡単に言うと、プロパティは「専用の行」「半角スペースで区切らないプロパティ名」「" : "シンタックス」「バリュー」によって成る。
    • シンタックスの前にプロパティ名を書く。
    • シンタックスの後にバリューを書く。バリューは一単語である必要はなく、長大かつ複雑な内容をセットできる。
      • 日時などの、ぐちゃぐちゃしたバリューをセットするためにプロパティがあると言ってよさそう。
  • プロパティによってfocusすることはできない。
    • プロパティもバリューも、クリックしても反応しない。
  • 恐らく、プロパティはモードに利用される。

Node Paths for Focusing

内部的には、各種の行(見出し、リストアイテム、その他)は "node" によって代表されている。ノードという用語は、我々がツリー構造を扱っていることを強調している。例えば、見出しの下にある全てのパラグラフは、見出しノードの子ノードとして格納されている。

ノードパスは、ドキュメント内部で該当するノードを見付けるために利用される。例えば、このノードパスは、ドキュメント内部のトップレベルである "inbox" セクションにおける、全ての "@today" タグを含むノードを返す。

/inbox//@today

ノードパスは、内部的にはドキュメントをfocusするために使われる。タグをクリックすると、そのタグを持つノードをfocusし、その他のノードをfoldするために、ノードパスが作成される。

現在、ノードパスを編集し、その値を求めるためのユーザーインターフェースは存在しない。しかし、AppleScriptまたはJavaScriptを利用することで、ノードパスを求めることができる。

Part 4: Platform SDK

省略