はじめに
昨日、特定のページを検索してコードブロックを挿入する記事を書きました(VScode の選択部分を Notion の codeblock として挿入 : Notion 解説(37) - hkob’s blog)。使ってみて、今実行しているポモドーロのページに追記できた方が楽だし、設定項目も減って使いやすいのではと気づきました。そんなわけで、昨日リリースしたばかりですが、早速作り直します。
変更点
特定のデータベースでタイトルを検索するのではなく、データベースの中で一番新しいものを選択するようにします。このため以下の設定項目のみ設定すればいいだけになります。
code-block-to-notion.notionToken
: Notion のトークン (secret で始まる文字列)code-block-to-notion.databaseId
: 検索するデータベース ID (16進数の羅列)code-block-to-notion.openByApp
: ページを Notion で開く時には true (true)
一番新しいものを検索するには、データベースの中で一番新しいものということで、「last_edited_time」が一番大きいものを検索すればいいだけになります。
コードの修正
まず、必要ない設定の読み込みを消しました。次に、ページの取得部分の関数名を getLastEditedPage に変更しました。
const myPage = await getLastEditedPage();
getLastEditedPage は単に timestamp 順の新しい順に並べ、一番先頭を取得します。前回は検索条件で自動的に一つしか取得しませんでしたが、今回は page_size で 1 件に絞っています。
async function getLastEditedPage() { let myPage; try { const lists = await notion.databases.query({ database_id: databaseId, sorts: [ { timestamp: "last_edited_time", direction: "descending" }, ], page_size: 1 }); myPage = lists.results[0]; } catch (error) { return undefined; } return myPage; }
テスト
今日の「1ポモドーロ」はこの記事を書くタスクでした。Alfred から「an code-block-to-notion のアップデート」でタスクを作成しました。さらに「pn」で「1-1」ポモドーロを設定しています。この状態で、このページが一番最新のページになっているはずです。
そこで、上の「コードを修正」と同じ文章を書いてみました。先にテキストを書き、VScode の選択部分をこの下に追加してみます。ちゃんと一番新しい記事であるこのページに追加されていることがわかります。
おわりに
設定項目も少なくなりましたし、普通の人にも使いやすくなったのではないかと思います。
この機能拡張はこちらで配布しています。