generated at
UserScript:Bulletjournal
バレットジャーナル 支援スクリプト

テスト
¥テスト
oテスト
-テスト
!テスト
*テスト
xテスト
>テスト
<テスト
X

script.js
scrapbox.PopupMenu.addButton({ title: '🅱', onClick: text => text.split(/\n/) .map(line => { if (line.match(/^¥/)) { return line.replace(/^¥/, '[¥.icon]') } else if (line.match(/^o/)) { return line.replace(/^o/, '[o.icon]') } else if (line.match(/^-/)) { return line.replace(/^-/, '[-.icon]') } else if (line.match(/^\*/)) { return line.replace(/^\*/, '[*.icon]') } else if (line.match(/^\!/)) { return line.replace(/^\!/, '[!.icon]') } else if (line.match(/^x/)) { return line.replace(/^x/, '[x.icon]') } else if (line.match(/^>/)) { return line.replace(/^>/, '[>.icon]') } else if (line.match(/^</)) { return line.replace(/^</, '[<.icon]') } else if (line.match(/^・/)) { return line.replace(/^・/, '[¥.icon]') } else if (line.match(/^+/)) { return line.replace(/^+/, '[o.icon]') } else if (line.match(/^ー/)) { return line.replace(/^ー/, '[-.icon]') } else if (line.match(/^*/)) { return line.replace(/^*/, '[*.icon]') } else if (line.match(/^!/)) { return line.replace(/^!/, '[!.icon]') } else if (line.match(/^x/)) { return line.replace(/^x/, '[x.icon]') } else if (line.match(/^X/)) { return line.replace(/^X/, '[x.icon]') } else if (line.match(/^>/)) { return line.replace(/^>/, '[>.icon]') } else if (line.match(/^</)) { return line.replace(/^</, '[<.icon]') } else { return line } }).join('\n') })

// テンプレートから新規ページを作るカスタムメニュー
scrptxx.js
const base = 'bullet-journal' fetch(`/api/pages/${base}`).then(res => res.json()).then(project => { for (const page of project.pages) { const isTemplate = page.descriptions.some(d => d === '#テンプレート') if (!isTemplate) { continue } import(`/api/code/${base}/${page.title}/script.js`) } })

bujo
UserScript