ページのコミットログを取得する
Scrapboxのページのコミットログを取得するには、ユーザースクリプトを追加するか、スクリプトを手動で実行する必要があります。
ユーザースクリプトを追加する
以下の手順でコミットログをコピーするユーザースクリプトを登録します。
Step 1. プロフィールページへスクリプトを追加
以下のスクリプトをプロフィールページのcode:script.jsというコードブロックへ記述します。
code:script.js
Step 2. ユーザースクリプトを有効にする
設定のEdit profile→Extensionsより、ユーザースクリプトを有効にするフラグにチェックを入れます。
https://gyazo.com/562727fac531a05be8437c8bb7b32114
Step 3. ユーザースクリプトを読み込む
ユーザースクリプトを有効にしたら、ページをリロードします。
すると、以下のようなバナーが表示されるのでLoad new UserScriptをクリックしユーザースクリプトを読み込みます。
この手順はプロフィールページのcode:script.jsを更新する度に必要です。
https://gyazo.com/94b763492cdfde0a729ead3e8ad10e59
Step 4. ページメニューからユーザースクリプトを実行する
ページメニュー(ドキュメントのアイコン)にCopy Page Commit Logという項目が追加されているので、クリックします。
特に完了のフィードバックなどはありませんが、ページのコミットログがコピーされます。
https://gyazo.com/71a4e96c917ac4562ccd487e9648294d
手動でスクリプトを実行する
コミットログを取得したいページで、以下のコードをコンソールに貼り付け実行します。
特に完了のフィードバックなどはありませんが、ページのコミットログがコピーされます。
code:js
const { id } = await fetch(https://scrapbox.io/api/pages/${project}/${page})
.then((res) => res.json());
const data = await fetch(https://scrapbox.io/api/commits/${project}/${id})
.then((res) => res.text());
let $textarea = document.createElement('textarea');
$textarea.textContent = data;
document.body.append($textarea);
$textarea.select();
document.execCommand('copy');
$textarea.parentNode.removeChild($textarea);
$textarea = null;
ユーザースクリプトのソースコード
以下、ユーザースクリプトのソースコードです。
code:user-script.js
(() => {
scrapbox.PageMenu.addItem({
title: '⏱ Copy Page Commit Log',
onClick: async () => {
const { id } = await fetch(https://scrapbox.io/api/pages/${project}/${page})
.then((res) => res.json());
const data = await fetch(https://scrapbox.io/api/commits/${project}/${id})
.then((res) => res.text());
let $textarea = document.createElement('textarea');
$textarea.textContent = data;
document.body.append($textarea);
$textarea.select();
document.execCommand('copy');
$textarea.parentNode.removeChild($textarea);
$textarea = null;
}
});
})();
参考