Scrapboxに機械的にコンテンツをインポートした上で、それを全部読んだということを保証したい場合にどうするか
順番に読む必要がある場合
- 例: 書籍の各ページをインポートして順番に読む
- 解決策
- 1: インポート時に各ページから次のページへのリンクを作成しておく
- 2: 最初のページからスタートしてリンクを辿りながら順に読む
- 3: 読書を再開するときにはlast visited順にすれば最後に読んだページが浮かぶので、それの次のページから読めば良い
順番に読む必要がない場合
- 独立したコラム記事が300本あるとか
- 既存のScrapboxプロジェクトXに目を通して、有用な記事だけを別のプロジェクトYに転記したいとか
- 例えば公開してはいけない情報が含まれるなどでXを丸ごとYにインポートしてはいけないケース
- これが重要だと思う
- Wikiなんだからリンクをたどって好きな順番で読みたい
- 好きな順番で読んで良いコンテンツなのに網羅性の保証のために順番を強制されるのはいや
- 解決策
- インポート時にすべてのページに未読タグをつける。例:
#unread
- unreadページを作りピン留めする
- 関連ページに未読ページの一覧が出る
- 読んだら未読タグを取り除く
- インポート時にすべてのページに未読タグをつける。例:
- 注意点
- 読んで何かタスクをしたくなったとする
- 記法が崩れてるのを直すとか、情報が古いのをアップデートするのか
- 「このタスクが終わってから未読タグを外そう」と考えてはいけない
- それは「読む」とは別のタスクだから
- 「読んだけどやりたいタスクがあるからタグを外してない」という余計な状態が発生してしまう
- 2分で終わるくらいの簡単なことなら今終了させれば良い
- そうでないなら別のタグをつけたりピン留めしたりと、未読管理とは異なる管理をするべき
- 未読ページ一覧はDate modified順にするといい
- 読みかけで中断するとき、読んだところに書き込んでおけば、次回それが一覧のトップにあり、どこまで読んだかもすぐわかる
- 読んで何かタスクをしたくなったとする
- Porterを使ってるならPin Boardでunreadページをピン留めすると良い
- 重たいトップページを経由せずにすぐにunreadページを開ける
- unreadタグを外すのも、範囲選択なしでカットボタンを押せば行カットされるのでワンタッチ
- 単にすべて読むことが目的なのではなく知識のネットワークを作ることが目的の場合
- 読んでunreadを消したところで自分なりの要約を書いたりキーワードをリンク記法で書くと良い
- この時、Scrapboxのリンクサジェスト機能で他のまだ読んでないページがサジェストされたりする
- それも辿って読むといい、未読リストの頭から機械的に読むより関連をたどって読む方が知識のネットワークが作られやすい
未読タグをつけるスクリプト python
import json
data = json.load(open("in.json"))
for page in data["pages"]:
page["lines"].append("#unread")
json.dump(data, open("out.json", "w"))