一ヶ月以上前のことだが、新しい規格のアウトライナーを自分用に作ろうとしていた。結局没にしたが、最初はいいことを思いついたと思ったのでここに書いて供養する。
通信環境に縛られる問題
常日頃書いているように、アウトライナーはDynalistを使っている。基本的には機能面で物足りなさを感じることはない(あっても大抵自分で解決する術がある)。ただし、自分のデータに対する自分の裁量という面で言うと、微妙に足りないところがある。
というのは、まずインターネットが遮断されたらアクセスできないという問題がある。自分の環境の都合もあるし、Dynalist側のサーバーエラーも最近は珍しくない。通信会社が障害を生じる場合もある。そうなると参照したいタイプの情報を入れていると危ない。必要な時に限ってトラブルに見舞われるものである(マーフィーの法則)。
これは別にDynalistに限った問題ではなく、ローカルファイルを扱うアプリケーションでなければどれも同じだ。なので、まず「データをローカルに置くDynalistライクなアウトライナーがほしい」という思いが生まれた。
人間の読み書きと機械の読み書き
そうしたときに問題になるのはデータのかたちだ。
参考としてDynalistのデータがどうなっているかまとめてみる。
- エクスポート形式はOPMLとtxt
- APIを使えばJSONで出力できる
- インポートできるのはOPML
- プレーンテキストのインデントはDynalist上でペーストすれば反映させられる
アウトライナーのデータ形式として一般的なのがOPMLだが、これは機械のための形式であって、人間が直接編集するのは現実的ではない。データベースとして簡便なのがJSONだがこれも同様である。なので、これらの形式を使うなら、専用のアプリケーションを作った上で必ずそれを使って情報を読み書きする必要がある。
専用アプリケーションを作るにあたってネックになるのは、PCとスマートフォンという二種類の環境への対応だ。PC用なら慣れているが、スマートフォン用にアプリケーションを開発するのは容易でない。難しいというより、学習コストがかかって食指が伸びない。ローカルファイルを扱おうとするからそうなるのだということで、クラウドを使ったWebアプリケーションを作ってPCとスマートフォンの切り替えはCSSでレイアウトを変えるだけにするという手もあるが、そうすると結局インターネットが遮断されたらそのアプリケーションは使えない。
もしも専用のアプリケーションなしで直接編集できる形式なら、スマートフォンでは単にテキストとして扱い、PCではより便利に読み書きできるアプリケーションを通して編集するということができる。Dynalistの代替を考えているわけだから、スマートフォンでも不自由しないようでなくてはならない(出先で確認・編集できることもDynalistを利用している理由のひとつである)。
プレーンテキストでありながらアウトラインとして扱える形式というのが実は既に存在する。階層付きテキストというものである(発祥はWZ Editorだろうか?)。行頭のピリオドの個数で階層を表現してプロダクト型アウトライナー化するもので、対応しているアプリケーションがいくつかあるため自分で開発しなくても編集できる。アウトライン操作までしなくていいなら単にテキストエディタで開けばよい。
階層付きマークダウンアウトライナー
とはいえ、階層付きテキストでいいなら最初からPCでもそれを使っているのであり、Dynalistに頼る必要はない。
私がDynalistを使っている大きな理由として、Dynalistがプロセス型アウトライナーであることと、各ノードに自由にメタデータを持たせられるということがある。Dynalistの機能として備わっているのはHeadingとColor、チェックボックスだが、勝手にノート欄をプロパティを書く場所として使いスクリプトでそれを機械的に解釈することで、ノード単位で好きなようにプロパティを添えることができる。
あとは本文の表現についても、画像埋め込みやリンクなどいくつかのMarkdown記法は使えた方がいい。完全なプレーンテキストだとあまりに物足りない。
そう考えて思いついたのが、まず大枠を階層付きテキストとし、各ノードの本文をフロントマター付きのMarkdownとして解釈する形式である。これを「階層付きマークダウンアウトライナー」と仮に呼ぶことにした。
.親要素
---
created: 2025/05/29
---
本文
[Noratetsu House](https://noratetsu.deno.dev/)
..子要素
---
created: 2025/05/30 20:58
---
本文
.タイトル
フロントマターはなくてもいい
..本文もなくてもいい(タイトルが本文でいい)
このような形。スマートフォン上では、階層付きテキストを扱えるエディタで開けばアウトライン操作ができるし、Markdownエディタで開けばアウトラインは操作できないが本文中のMarkdown記法はプレビューできる。完全な操作ができないもどかしさはあるが、一応は普通に読めて普通に編集できることになる。
PC用に、これを読み込んでDynalistのように扱うアプリケーションを作れば、Dynalistの操作感でありかつローカルにデータを置けてかつスマートフォンでも読み書きできなくはないという環境ができあがる。
実際にビューワまでは作った。ビューワができれば半分できたようなもので、エディタも多少時間をかければ作れなくはなかった。
だがしかし
しかし開発はここでやめてしまった。
階層付きマークダウンアウトライナーというのは、つまりMarkdownのファイル(=mdファイル)群に親子関係を付与したものとほとんど同じである。
てことは――Obsidianのプラグインを作ってmdファイル間を関係づけたらいいのでは?
というわけで次回に続く。
Backlinks
関連度が高いかもしれない記事
- アウトライン型データベースとしてのDynalist
- 内部処理の変更に伴うお知らせ/文章エディタとしてのDynalist
- 2025年4月の振り返り
- ブックマークレットを活用する(Dynalist)
- アウトライナー×つぶやき×平面配置②~ツール紹介編~
他の「アウトライナー」タグの記事
- Dynalistのノードの見た目を粒状にして目が滑るのを防ぐ
- ノードリンクを活用し全てのノードに意味のあるアウトラインを作っていく
- メールはアウトライナーで読む
- アウトライン型データベースとしてのDynalist
- ノードの本文を判定して任意のスタイルを設定する(Dynalist)
- 「文脈エディタ」としてのアウトライナー
- ライフ・アウトライン日記: ノート欄を楽しむ
- ノート欄に本文を貼る(Dynalist)
- 知見ノートを作る/タグ機能と仲良くなった②(Dynalist)
- Chrome拡張機能を自分で作って活用する(Dynalist)
- ブックマークレットを活用する(Dynalist)
- タグ機能と仲良くなった(Dynalist)
- ノート機能と仲良くなった(Dynalist)
- ファイル・フォルダ機能と仲良くなった(Dynalist)
- アウトライナー(Dynalist)と仲良くなった
- アウトライナーを前にしてやりたくなること
- アウトライナー×つぶやき×平面配置②~ツール紹介編~
- アウトライナー×つぶやき×平面配置①~経緯編~
- アウトラインではなくキューを作る
- ツール製作日誌:カード式アウトライナー③カードっていうかルーズリーフだった編
- アウトライナーと手帳と表紙
- タイムライン型・カード型・デスクトップ型②~デスクトップ型~
- タイムライン型・カード型・デスクトップ型①~タイムライン型とカード型を使い分ける~
- ツール製作日誌:カード式アウトライナー②背景説明編
- ツール製作日誌:カード式アウトライナー①機能説明編
- 座標のない平面
- ツール製作日誌:「面のアウトライナー」
- アウトライナー日誌:バレットを「┠」にしたらバレット感に邪魔されなくなった
- デジタル日記の試み④~Dynalistに日記と日誌のファイルを作る~
- アウトライナー日誌:アウトライナーとは何型のメモなのか
- 発想を文脈から解放するには④~余談~
- アウトライナー日誌:「設計図」または「説明図」という意識を持ってみた
- アウトライナーの使い方ド下手問題~はじめに~
他の「プログラミング」タグの記事