pogin503
https://gyazo.com/db982b5d7448129e1b0b99e5c118a753
============================
以下はスクリプト
code:script.js
scrapbox.PageMenu().addMenu({
title: 'Hello World',
// onClick: () => {
// window.alert('Hello World!')
// },
});
scrapbox.PageMenu('Hello World').addItem({
title: 'Hello World',
onClick: () => {
window.alert('Hello World!');
},
});
code:script.js
// scrapbox.PopupMenu.addButton({
// title: 'Hello World',
// onClick: () => {
// window.alert('Hello World!')
// },
// })
code: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.lines0.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)
}
})
}
}
}
code:style.css
/* 新規ボタンを消す */
/* .new-button { */
/* visibility: hidden; */
/* } */