KosshiKosshi

Markdown によるテキスト書式

Kosshi はテキストの書式に Markdown を採用しています。 **太字** や *斜体* のように、 記号でテキストに書式をつける記法です。

アウトライナーのすべてが Markdown を使っているわけではありません。 リッチテキストを採用しているものもあれば、 書式機能自体を持たないものもあります。

アウトライナーと書式

アウトライナーの中心にあるのは構造の操作です。 項目の親子関係と順序を変えることで、考えを整理します。 太字、斜体、リンクなどのテキスト書式は、 構造とは別の、副次的な機能です。

このため、書式へのアプローチはアウトライナーごとに異なります。

Bike はリッチテキストを使用しています。 OmniOutliner はリッチテキストを使います。 Workflowy と Kosshi は Markdown を採用しています。

どれが正しいということではなく、 書式に何を求めるかによって選択が変わります。

構造と書式の役割分担

一般的な Markdown ドキュメントでは、 # 見出しが構造と書式の両方を担います。 # を書くことで文章の階層を作り、 同時にそれが見出しとして表示されます。 構造を変えたければ # の数を書き換える必要があります。

アウトライナーでは、この構造の役割をツリーが担います。 親子関係とインデントが、そのまま情報の階層です。 # を書いて構造を作る必要はありません。 構造を変えたければ、行を動かすだけです。

Markdown が担うのは、文章全体の構造ではなく、各行の中の書式です。 **太字** で強調し、[リンク](URL) でリンクを張り、 `コード` でコードを示せます。

通常のアウトライン作業では、# 見出しを書く必要はありません。 構造の中心は引き続きツリーです。 一方、読者に見せる文書構造が必要な場合は、 単一の # を文章見出しの印として使えます。 アウトライン表示ではツリーと一緒に H1〜H6 のレベルを表示し、 プレビューで読み取り専用の文書として表示します。

入力する # は、どのレベルでも一つです。 Kosshi は、ツリー上で上位にある見出しだけを数えて、 H1、H2、その先のレベルを導きます。 通常の整理用の親行はレベルに数えず、 節を移動しても保存された記号を書き換えません。

文章見出しの内側では、通常行の階層を執筆中の整理に使えますが、 Markdown などのドキュメント書き出しでは本文として平坦化されます。 読者に見せる小見出しは別の # で、 箇条書きは明示的な - や 1. で作ります。 % の行は子孫を残したまま原稿から除外されるため、作業用のグループ名として使えます。

このためツリーは書き手の思考に合わせて自由に使いながら、 読者に関わる判断だけを少数のプレーンテキスト記号として残せます。 編集可能なアウトラインが常に正本です。

プレーンテキストと互換性

Markdown は記号でテキストに書式をつけるので、 書式つきのテキストをそのままテキストエディタで開いても内容を読めます。 **太字** と書いても、 テキスト自体は「太字」という文字列のままです。

リッチテキストでは、 書式情報はテキストとは別のレイヤーに存在します。 アプリ間でコピー&ペーストしたときに 書式が崩れたり意図しないスタイルが混入するのは、 この仕組みに起因します。 Markdown ではテキストそのものが書式を含んでいるので、 こうした問題が起きません。

また、Markdown はブログ、GitHub、Wiki、ドキュメントツールなど 多くのツールが対応する記法です。 Kosshi のアウトラインを Markdown でエクスポートすると、 そのまま他のツールで使えます。

Markdown 記号の表示

Markdown の記号をどう画面に表示するかには、 複数のアプローチがあります。 ソースとプレビューを左右に並べる方式、 ソースを常に見せる方式、 カーソル位置に応じて切り替える方式です。

Kosshi は 3 つ目の方式を採用しています。 カーソルがある行では Markdown の記号が現れ、 テキストを直接操作できます。 カーソルを離すと記号が消え、 書式が適用された状態で読めます。

Typora、Bear、Obsidian など 多くの Markdown エディタがこの方式を採用しています。

なお、設定で「Markdown シンボルを常に表示」をオンにすると、 記号を常に表示する方式に切り替えることもできます。

トレードオフ

Markdown はすべての書式を表現できるわけではありません。 文字色やフォントサイズの変更、 複雑なレイアウトには対応していません。

Kosshi が対応しているのは、 太字、斜体、取り消し線、インラインコード、 リンク、チェックボックス、引用、コードブロックです。 文章を書くのに必要な基本的な書式に限定しています。

リッチテキストは表現力が高い一方で、 書式の管理が複雑になります。 Markdown は表現力を限定する代わりに、 テキストの可読性と可搬性を維持します。

また、Markdown の記法に馴染みがない場合、 リッチテキストのツールバーの方がわかりやすいです。 ただし、ライブプレビュー方式であれば 入力結果がすぐに書式として表示されるため、 記法は使いながら覚えられます。 Kosshi ではキーボードショートカット(Cmd+B で太字、Cmd+I で斜体)にも対応しているので、 記法を使わずに書式を適用することもできます。

詳しい使い方はMarkdown ガイドをご覧ください。

Kosshi について

Kosshi は macOS / iOS 向けのネイティブアウトライナーです。 Markdown によるインライン書式とアウトライナーのツリー構造を組み合わせて、テキストの書式と情報の構造を同時に扱えます。 iCloud で Mac、iPhone、iPad 間を同期します。

基本操作についてはアウトライナーとは?を、機能の詳細はガイドをご覧ください。

7 日間無料で試す