generated at
空リンクを置換するPopup Menu
空リンクを置換するPopup Menu
リンク置換_(scrapbox)用APIを叩いている
普通にリンクを書き換えるhttps://rashita.net/blog/?p=29663 のに比べて、ページ遷移とページ削除の2つの手間が省けるという利点がある

ほしい機能
中身のあるページのリンクも置換したい
scrapbox-headless-scriptと組み合わせれば実現できる
例えば公開個人projectと非公開個人projectで使っている同名のリンクを一度に置換する

script.js
scrapbox.PopupMenu.addButton({ title: text => getLink(text) ? 'update links' : '', onClick: text => { const link = getLink(text); if (!link) return; const newLink = window.prompt(`Replace "${link}" to`, link)?.replace?.(/[\[\]\n]/g, ' ') ?? ''; if (newLink === '') return; updateLinks(link, newLink); return; } }) function getLink(text) { return text.match(/\[([^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~][^\[\]]*)\]/)?.[1]; } async function updateLinks(from, to, {project} = {}) { project = project ?? scrapbox.Project.name; const res = await fetch(`/api/pages/${project}/replace/links`, { method: 'POST', headers: { 'Content-Type': 'application/json;charset=utf-8', 'X-CSRF-TOKEN': window._csrf, }, body: JSON.stringify({from, to}), }); return await res.json(); }

#2022-01-26 12:29:19
#2021-12-06 09:06:11
#2021-11-02 12:36:29
#2021-06-30 08:10:50
#2021-05-26 14:41:41
#2021-05-25 09:53:01