Small Changes

Roam Researchを4か月使ってみて生き残った運用方法・設定を紹介

去年の12月くらいから使い始めて大体4か月経って使い方が固まってきたので今でもよく使う使い方を紹介します。

Roam Researchに移行したときのことについてはBlog/2021~2022年の年末年始にやった10のことで少し触れています。

Roam Researchを使う上で大事にしている考え方

4か月ほど使っているとRoam Researchの使い方の方針みたいなものが見えてきました。

それは、第2の脳であることを意識することです。これかなり重要だと思ってます。

脳に記憶された情報を取り出すときは無意識に○○に書いてあったなとかといった感じで、何かに紐づけて記憶していたりすると思います。まさにRoam Researchは脳と似たような感じで使うことができます。

例えば、ブラケット二つで[[リンク]]を作ることができます。この[[リンク]]が埋め込まれているブロックは紐づくので後から芋づる式に情報を取り出すことができます。#タグ[[リンク]]と同じです。

このようにして後から取り出したい情報にリンクやタグを埋め込んでおくと後から第2の脳として機能します。これはObsidianのときにはなかった体験で本当に脳のように機能します。

Roam Researchを120%使いこなす

私は一度Roam Researchを使ったときは上記の考え方や基本的な使い方がわからず、よくわからないまま使うのをやめました。

Roam Researchはデイリーノートが自動で作成される作りなので、デイリーノートに後から見返したい言葉をリンクにしたり、タグをつけるだけで成立するのですが、基本的な使い方を知っているとさらに生産的な活動のためにRoam Researchを使うことができます。

そのきっかけとなったのがShu Omiさんという方が作成されている知的生産ツール「Roam Research」完全ガイドです。 ※アフェリエイトリンクではありません。

このガイドは有料(4,000円)だったのですがこのガイドのおかげで効率的にRoam Researchの使い方を学ぶことができました。長期的に見て確実におすすめできるので、時間を有効に使いたい方は購入をお勧めします。

生き残った運用方法・設定

色んな使い方ができるのは良いことですが、たくさんありすぎてよく分からなかったりします。私の中で今でもこの使い方はお勧めできる運用方法を紹介します。

タグ運用

冒頭でも話しましたが、Roam Researchは#タグと文字の頭に#をつけることでそのブロックにタグを付与することができます。タグをつけることで後からそのタグの情報を取り出しやすいので色々なタグをつけましたが、最終的に手動でつけるタグは#Fleeting-Notesが生き残りました。

このタグは、いつか見返したい情報(気づき、アイデア、気持ちetc)に対してつけるタグです。なぜこのタグが生き残ったかというとRoam Researchを一つの脳と考えたときにタグの粒度を細かくするほど、振り返るときにたくさんのタグを見返さねばいけなくなるので振り返りにくいです。そのため、現在振り返りたい情報に対してはこのタグ1個での運用に落ち着きました。※テンプレートなどで固定で使っているタグは除きます。

ページタイトルのprefix

ページを作成するときにprefixをページ名の先頭につけると検索しやすくなるので、prefixのルールを決めて使っています。

prefix説明
A: Articleの略
B: Bookの略
O: 鬼速PDCAの略
V: Videoの略
W: Weekly Reviewの略
Z: Zattana Memoの略。雑多なメモのタイトルのprefixとして使用

ショートカットキー

このほかにもショートカットキーではありませんが、インデントラインをクリックするとブロックを一気に閉じたり、開いたりできるのでかなり多用しています。

key説明
S-Clickブロックをフォーカスしてサイドバーで開く
C-↓C-↑ブロックを開く/閉じる
Alt-←Alt-→ブロックをズームアウト/ズームイン
C-JC-K候補選択
C-Cの後にC-BブラケットのON/OFF切り替え

roam/css: カラーテーマ

Roam Researchではcssを直接importすることでカラーテーマを切り替えることはできます。もちろん、自分でcssをゴリゴリ書いてカスタマイズすることもできます。

私は、「Better Dark Age」というテーマを使っています。roam/cssというページを作って、Css Code Blockの中でimport文を貼り付けるだけで適用されます。

@import url('https://abhayprasanna.github.io/dark-age-dracula.css');

roam/css: カラーテーマ(追加機能)

「Better Dark Age」というテーマは追加機能も提供しています。

その中で、「Rainbow indents」がおすすめです。インデントごとに色がつくので、インデント単位での折り畳みやインデント単位での可読性があがります。これも同じimport文を貼り付けるだけです。

@import url('https://abhayprasanna.github.io/rainbow-indent.css');

roam/templates: デイリーノート

[[roam/templates]] テンプレート名として、その子ブロックに呼び出したいテンプレートを作っておくと;;で呼び出せるようになります。

毎朝、デイリーノートを開き下記テンプレートを呼び出して使っています。

- [[roam/templates]] Daily Template
    - ## **Daily Template**
        - ## **Morning-Journal**
            - #Morning-Journal
                - 3つの感謝していることは? #Thanks
                - 今日のハイライトは何にしたい?
                - 今考えていることは?
    - ## 👨‍💻**WorkSpace** 
        - #WorkSpace
            - 

Morning-Journal

  • 毎朝、感謝していることなどを書く場所。

WorkSpace

  • その日の作業ログを書いていく場所。

  • 例) 21:22 今日はブログ記事を書く。

  • Roam Researchでは/timeと打つとその時間が自動で入ります。

roam/templates: レゾナンスカレンダー

これはShu Omiさんの完全ガイドで知ってから使っているテンプレートです。ここで、詳しい説明は省きますが、このテンプレートを使って記事、動画、本などで学んだ情報を管理しています。

- [[roam/templates]]  Resonance Calender
    - #Resonance-Calender
        - Categories: #Article | #Video | #Book
        - Date: {{date}}
        - Author: 
        - Source: 
        - Status: #Waiting
        - Keywords: 
        - #Literature-Notes
            - 
        - Contents:
            - 

roam/js: todo-trigger

下記の記事で存在を知りました。[[roam/js]]での拡張機能を有効にする必要があり、その手順も下記記事に譲ります。Roam ResearchではTODOリストを/todoで簡単に作れます。この拡張機能を入れるとチェック時に完了日時を付与できるので便利です。

拡張機能自体のリンクは下記です。

var existing = document.getElementById("roamjs-todo-trigger");
if (!existing) {
  var extension = document.createElement("script");
  extension.src = "https://roamjs.com/todo-trigger.js";
  extension.id = "roamjs-todo-trigger";
  extension.async = true;
  extension.type = "text/javascript";
  document.getElementsByTagName("head")[0].appendChild(extension);
}

roam/js: mindmap

こちらはRoam Researchのアウトラインがそのままマインドマップとして表示できる拡張機能です。ネストが深くなったりしたアウトラインの全体を俯瞰したいときなどに便利です。

拡張機能自体のリンクは下記です。

var existing = document.getElementById("roamjs-mindmap");
if (!existing) {
  var extension = document.createElement("script");
  extension.src = "https://roamjs.com/mindmap.js";
  extension.id = "roamjs-mindmap";
  extension.async = true;
  extension.type = "text/javascript";
  document.getElementsByTagName("head")[0].appendChild(extension);
}

roam/js: serendipity

セレンディピティ(Serendipity)とは、「偶然の産物」という意味です。Roam Researchはセレンディピティとも相性がいいです。

タグ運用で当時の気持ちやアイデアなどは全て#Fleeting-Notesというタグをつける運用をしていると話しました。

私はserendipityという拡張機能を使って、デイリーノートに毎日ランダムに#Fleeting-Notesの中から3つ書き込まれるように設定しています。

下記のツイートのように表示されるため、忘れていたアイデアを思い出すことなどができとてもいい仕組みを作ることができます。

たまに動かなかったりしますが、それでも良い拡張機能だと思います。

拡張機能のリンクです。

var existing = document.getElementById("roamjs-serendipity");
if (!existing) {
  var extension = document.createElement("script");
  extension.src = "https://roamjs.com/serendipity.js";
  extension.id = "roamjs-serendipity";
  extension.async = true;
  extension.type = "text/javascript";
  document.getElementsByTagName("head")[0].appendChild(extension);
}

roam/js: enhancedPDF

この拡張機能を見つけたときは興奮しました!

Roam ResearchにPDFをアップロードすると、ハイライトできるようになります。また、そのハイライトはRoam Research内に自動転記したりもできます。

下記のように、ハイライトした箇所を追加すればRoam Research内にHighlightsというブロックが作られてその子ブロックにハイライトした箇所の文字が転記されます。私はEvernoteのウェブクリッパー機能が優秀なので、そこで簡易な記事として保存したものをPDFに書き出してアップロードしてレゾナンスカレンダーにまとめるなどしています。PDFのいいところは参照しているウェブページ自体が存在しなくなっても残り続ける点が良いなと思っています。

window.pdfParams = {
  //Highlight 
  ///Placement
  outputHighlighAt: 'cousin', //cousin, child
  highlightHeading: '**Highlights**', //for cousin mode only 
  appendHighlight: true, //append: true, prepend: false
  ///Rest of Highlight Options
  breadCrumbAttribute: 'Title', //Title, Author, Citekey, etc. 
  addColoredHighlight: true,//bring the color of highlights into your graph
  //Rerference to Highlight 
  ///Block References Related
  copyBlockRef: true,//false: copy captured text
  sortBtnText: 'sort them all!',//{{sort them all!}} button will sorted highlight references.
  ///Block Reference Buttons  
  aliasChar: '✳', //use '' to disable
  textChar: 'T', //use '' to disable	
  //PDF Viewer
  pdfMinHeight: 900,
  //Citation 
  ///Format   
  ////use Citekey and page in any formating string 
  ////page can be offset by `Page Offset` attribute. 
  ////common usecase: 
  /////Zotero imports with 'roam page title' = @Citekey and Citekey attribute
  ////examples:
  /////"[${Citekey}]([[@${Citekey}]])" 
  /////"[(${Citekey}, ${page})]([[@${Citekey}]])" 
  /////use '' to disable  
  citationFormat: '',
  ///BlockQuote 
  blockQPerfix: ''//use '' to disable. Alternatives are: > or [[>]].
};
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "https://c3founder.github.io/Roam-Enhancement/enhancedPDF.js";
document.getElementsByTagName("head")[0].appendChild(s);

roam/js: smartblocks

Roam Researchで有名な拡張機能としてスマートブロックがあります。スマートブロックはテンプレートを拡張してくれます。スマートブロックの可能性は無限大なので各々調べてみてください。例えば、このブログではRoam Research内のブログ記事一覧を抽出してJSONに変換したりしています。簡単なものでいうと、下記のような感じでyyyy-mm-dd形式の日付を出力したりなどもできます。

考えようによってはGitHubActionsをRoam Researchから実行できるボタンを作ったりもできると思うので本当にすごい拡張機能だと思います。気になる人は拡張機能のリンクからリファレンスを読んでみると面白いと思います!

拡張機能のリンクです。

roam/js: static-site

Roam Researchを静的サイトにする拡張機能(有料)です。このブログもこの拡張機能でRoam Researchで書いたことをブログのような形にして公開することができています。結構奥深いので、時間が合ったらどういう設定をしているのか記事にできればなんて思っています。

その他

Roam ResearchではLatexという記法も使えます。AtCoderの問題を解くときとかに重宝しています。こんなのです。

スライダーを使って読書管理などもたまーにします。

あとはこんな感じでクエリ{{[[query]]: {and: [[Resonance-Calender]] [[Waiting]]}}}を書いたりもできます。

まとめ

4か月使ってみて生き残った運用方法や設定を紹介しました。

使い方と設定方法も一緒に紹介していますので、即効性が高くすぐに使える使い方もたくさんあったと思います。

細かいのを上げるとキリがないので大まかにこれが便利だよ!っというものを紹介しました。

Roam Researchよく分からんといった方や一度使ってみたけど挫折してみたという方に届くと嬉しいと思います。よきRoam Researchライフを!

2022/04/21 追記

mermaid も使えることを知りました!とても便利です。