はじめに
昨日、特定のページを検索してコードブロックを挿入する記事を書きました(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 の選択部分をこの下に追加してみます。ちゃんと一番新しい記事であるこのページに追加されていることがわかります。

おわりに
設定項目も少なくなりましたし、普通の人にも使いやすくなったのではないかと思います。
この機能拡張はこちらで配布しています。