見出し画像

【Logseq】カラムレイアウト プラグインをつくりました

通常、Logseqでは左サイドメニューとジャーナルが画面に開かれます

その右側のスペースにジャーナルのlinked Referencesと
ジャーナルクエリーを設置するプラグインです

ジャーナルクエリーに、LATERなどのタスクを表示させることができます

Linked Referencesには、日付リンクで関連する情報が表示されます
(これはLogseqを活用できるようになるとかなり効果的になります)

左からジャーナル、Linked References、ジャーナルクエリーの順

※注意事項

このプラグインでは、モニターおよびウィンドウのサイズが横幅1850pxより小さい場合は、対応していません。標準にもどります

フルHDモニターのサイズは、横1920px  x 縦1080px


インストール

プラグインのマーケットプレースを開き、
検索欄に「Column」と入力して検索する

ほかのプラグインと同じやり方でインストールをおこなってください

分からない方は次のキャプチャ動画を見てください

Column Layout プラグインを入れると、カラムレイアウトに切り替わります
プラグインをオフにすると、通常の表示に戻ります
タスクがないとジャーナルクエリーの表示スペースは空白になります


ジャーナルクエリーをカスタマイズする方法

Logseqからユーザー設定ファイル"config.edn"の編集をおこなう

  1. ツールバーの[・・・]を押して[ 設定 ]を選択

  2. 設定画面が開いたら、" config.ednを編集 "を選択

  3. config.ednの編集画面になったら、まずバックアップのためテキストエディタなどに内容全文をコピーする(「Ctrl」キー+「A」キーで選択)

  4. そして下にスクロールして、140行目あたりにある「:default-queries」を探す

  5. 「:default-queries」から:collapsed? false}]}までの文字列を選択して削除

  6. サンプルコードを貼りつける
    (このページの下のほうにありますのでコピーをおこなってください)

  7. 終わったら日誌ページを開く

  8. エラーメッセージが表示されなければ成功

config.edn編集画面について

上にファイルパスが載っているので別のテキストエディタでファイルを開くこともできる


書き換える部分

:default-queries {:journals から :collapsed? false}]} までがジャーナルクエリーの設定部分


ジャーナルクエリー用のサンプルコード

コピー&ペースト

 :default-queries {:journals [
                              {
                               :title "🔨 Working Tasks #NOW"
                              :query (task NOW)
                              :collapsed? true
                               }


                             {
                              :title "🐬 Project #DOING"
                              :query (task DOING)
                              :collapsed? false
                              }


                             {
                              :title "📅  Scheduled to #LATER"
                              :query (task LATER)
                              :collapsed? false
                              }


                             {
                              :title "⚠️ OVERDUE"
                              :query [:find (pull ?block [*])
                                      :in $ ?start ?today
                                      :where
                                      [?block :block/marker ?marker]
                                      (or
                                       [?block :block/scheduled ?d]
                                       [?block :block/deadline ?d])
                                      [(>= ?d ?start)]
                                      [(<   ?d ?today)]
                                      [(contains? #{"NOW" "LATER" "TODO" "DOING" "WAITING"} ?marker)]]
                              :inputs [:180d :today]
                              :result-transform  (fn [result]
                                                   (sort-by  (fn [d]
                                                               (get d :block/deadline)) result))
                              :collapsed? true
                              }


                             {
                              :title "Deadline within 10 days"
                              :query [:find (pull ?block [*])
                                      :in $ ?start ?next
                                      :where
                                      [?block :block/marker ?marker]
                                      (or
                                       [?block :block/deadline ?d])
                                      [(> ?d ?start)]
                                      [(< ?d ?next)]
                                      [(contains? #{"TODO"} ?marker)]
                                      ]
                              :inputs [:0d :10d-after]
                              :result-transform (fn [result] (sort-by (juxt (fn [d] (get d :block/deadline) ) ) result)
                                                   (sort-by  (fn [h]
                                                               (get h :block/deadline)) result))
                              :collapsed? true
                              }


                             {
                              :title "⏳ Not Assigned #WAITING"
                              :query (task WAITING)
                              :collapsed? true
                              }


                             {
                              :title "⏰ Scheduled appointments, 14 days #TODO"
                              :query [:find (pull ?block [*])
                                      :in $ ?start ?next
                                      :where
                                      [?block :block/marker ?marker]
                                      (or
                                       [?block :block/scheduled ?d])
                                      [(> ?d ?start)]
                                      [(< ?d ?next)]
                                      [(contains? #{"TODO"} ?marker)]
                                      ]
                              :inputs [:0d :14d-after]
                              :result-transform (fn [result] (sort-by (juxt (fn [d] (get d :block/scheduled) ) ) result)
                                                   (sort-by  (fn [d]
                                                               (get d :block/scheduled)) result))
                              :collapsed? false}
                             ]
                              }

{ から } までの区切りが、ひとつのクエリーです。
使ってみて不要でしたら削除をおこなってください

#NOW 
#LATER 
#DOING 
#WAITING 
#TODO

サンプルのクエリーでは、これらのタスクが表示されるようになります