generated at
pogin503

ブログ: pogin’s blog


============================
以下はスクリプト

script.js
scrapbox.PageMenu().addMenu({ title: 'Hello World', image: 'https://i.gyazo.com/7057219f5b20ca8afd122945b72453d3.png', // onClick: () => { // window.alert('Hello World!') // }, }); scrapbox.PageMenu('Hello World').addItem({ title: 'Hello World', onClick: () => { window.alert('Hello World!'); }, });

script.js
// scrapbox.PopupMenu.addButton({ // title: 'Hello World', // onClick: () => { // window.alert('Hello World!') // }, // })

script.js
// import '/api/code/pogi-log/addTemplateItemsToPageMenu/script.js'; // ↑なんかうまくいかない addTemplateItemsToPageMenu() function addTemplateItemsToPageMenu() { // テンプレートメニューの定義ここから const __templates = [ { title: '📄 ページテンプレート', template: '/api/code/pogi-log/テンプレート/ページテンプレート.js' }, { title: '📄 週報テンプレート', template: '/api/code/pogi-log/テンプレート/週報テンプレートS.js' }, { title: '📄 日誌テンプレート', template: '/api/code/pogi-log/テンプレート/日誌テンプレート.js' }, { title: '📄 図書館テンプレ', template: '/api/code/pogi-log/テンプレート/図書館テンプレ.js' }, { title: '📄 論文用テンプレ(落合式).js', template: '/api/code/pogi-log/テンプレート/論文用テンプレ(落合式).js' }, ] // テンプレートメニューの定義ここまで ---------- const __templMenuTitle = 'Templates' scrapbox.PageMenu.addMenu({ title: __templMenuTitle, image: '/assets/img/logo.png', onClick: () => { } }) __templates.forEach((i) => { scrapbox.PageMenu(__templMenuTitle).addItem({ title: i.title, onClick: () => { __loadTemplate(i.template) }}) }) var __loadTemplate = function (templateUrl) { if (scrapbox.Page.lines && scrapbox.Page.lines.length == 1) { // タイトル行をクリックしたことにする const line = document.getElementById('L' + scrapbox.Page.lines[0].id) const lastChar = line.querySelector('span.char-index:last-of-type') const textarea = document.getElementById('text-input') lastChar.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true})) textarea.dispatchEvent(new KeyboardEvent('keydown', {bubbles: true, cancelable: true, keyCode: 35})) // テンプレートを読み込む $('#text-input').load(templateUrl, function (response, status, xhr) { if (status == "success") { try { // 読み込んだテンプレートをテキストエリアにセットしまして textarea.value = /\.js$/.test(templateUrl) ? eval(response) : response // テキストエリアのinputイベントを出しまして textarea.dispatchEvent(new InputEvent('input', {bubbles: true, cancelable: true})) } catch (ex) { console.log("だめでした>< \n" + ex) } } else { console.log("だめでした>< \n" + status) } }) } } }

style.css
/* 新規ボタンを消す */ /* .new-button { */ /* visibility: hidden; */ /* } */