最近更新されたタイトル5件を表示させるボタンを追加するスクリプト
これは、Sblackboxに特化したUserScriptである。
実行すると、右側のページメニューに更新ボタンが置かれる。
このボタンを押すと、ポップアップが表示され、最近更新された5件のページタイトルが表示される。
https://gyazo.com/83c7127a776737a917251b6462fe97e3
設定方法
以下のスクリプトをコピペして自分のページに貼る
code:js
import "https://scrapbox.io/api/code/sbbox/%E6%9C%80%E8%BF%91%E6%9B%B4%E6%96%B0%E3%81%95%E3%82%8C%E3%81%9F%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB5%E4%BB%B6%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/script.js";
ソースコード
code:script.js
const PROJECT_NAME = "sblackbox";
const DISPLAY_NUM = 5;
// オブジェクトを更新日でソート(最新が前に来る)
const sortUpdate = (a,b) => {
return b.updated - a.updated
};
// 更新ボタンの設定
const newButton = (message) => {
scrapbox.PageMenu.addMenu({
title: "最新ページ取得",
image: "https://i.gyazo.com/dd985d3f98da5b70fb8a73cdc38f82a8.jpg",
onClick: () => alert(message)
})
}
// sbboxプロジェクトのタイトル一覧を取得
const URL = https://scrapbox.io/api/pages/${PROJECT_NAME}/search/titles;
const promise = fetch(URL).then(res => {
res.text().then(text => {
const js = JSON.parse(text)
js.sort(sortUpdate)
const map = js.map(d => d.title)
const mapSize = map.length
map.splice(DISPLAY_NUM, map.length-(DISPLAY_NUM + 1))
var message = "";
for (let i, d of map.entries()) {
i == 0 ? i = "最新" : i = i;
message += ${i}:${d}\n
}
newButton(message);
})
})