generated at
開いているページをエクスポートするUserScript

script.js
scrapbox.PageMenu().addItem({ title: 'export data', onClick: async () => { const projectName = `${scrapbox.Project.name}`; const pageName = `${encodeURIComponent(scrapbox.Page.title)}`; const target = `/api/pages/${projectName}/${pageName}`; const response = await fetch(target); // 重いページで重くなる可能性がある const json = await response.json(); const exportData = {pages: [{ title: json.title, created: json.created, updated: json.updated, lines: json.lines, },],}; const blob = new Blob([JSON.stringify(exportData,null,' ')], {type: 'octet/stream'}); // download dataを作成 const url = window.URL.createObjectURL(blob); // download linkを生成 // 同一scrapbox pageに隠しa要素を作り、それを踏んでdownloadを実行する const a = document.createElement('a'); a.href = url; a.download = `${projectName}-${pageName}.json`; a.style.display = 'none'; document.body.appendChild(a); a.click(); // downloadを実行 // 後始末 window.URL.revokeObjectURL(url); a.parentNode.removeChild(a); }, });