scrapbox-local-universe-dl
現在のページからn-hop以内のlinkで繋がっているページたちのjsonをダウンロードするUserScript
とりあえず n=2
cf.
用途
コンテキスト指向ではないタグやリンクを可視化して、コンテキスト的にはどういう構造をしているのか見る
近すぎるページをまとめるとか
やってみたが、ノード間の距離が意味的な距離をあんまり反映していないような気がするyosider.icon
リンク数?を1とか2くらいまで小さくしてノードが増えると構造が見えてきた!
code:script.js
const title = 'Download linked pages';
scrapbox.PageMenu.addMenu({
title: title,
onClick: async () => await run(),
});
async function run() {
const project = encodeURIComponent(scrapbox.Project.name);
const center = scrapbox.Page.title;
const { relatedPages: { links1hop, links2hop } } = await (await fetch(/api/pages/${project}/${encodeURIComponent(center)})).json();
const links = links1hop.concat(links2hop);
const jsonExport = {pages: []};
const promises = links.map(async (link) => {
const json = await (await fetch(/api/pages/${project}/${encodeURIComponent(link.title)})).json();
jsonExport.pages.push({
title: json.title,
lines: json.lines.map(line => line.text
.replace(new RegExp(\\[${center}\\]|#${center}, 'g'), center)
),
});
});
await Promise.all(promises);
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = links_from_${scrapbox.Page.title}.json;
a.style.display = 'none';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
a.parentNode.removeChild(a);
}
https://gyazo.com/51930110c969662dd514a52974d890c8