UserScript
自分のページにcode:script.jsというコードブロックにscriptを書くとその中身がプロジェクトのロード時に実行されます ブラウザをリロードする必要があります
自分にだけ有効です(メンバーやゲストには効果はありません)
ライト・ダークモード
code:script.js.off
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {
if (document.documentElement.dataset.projectTheme !== "default-minimal") {
document.documentElement.dataset.projectTheme = "default-minimal";
}
}
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
if (document.documentElement.dataset.projectTheme !== "default-dark") {
document.documentElement.dataset.projectTheme = "default-dark";
}
}
code:script.js
// 関連ページを吹き出し表示する
// n: north, s: south
$('body').attr('data-daiiz-rel-bubble', 'on')
// リンク先ページのテキストを表示する
$('body').attr('data-daiiz-text-bubble', 'on')
// アイコンをボタンとして使う
$('body').attr('data-daiiz-icon-button', 'off')
// GyazoでScrapboxのページを読む
$('body').attr('data-daiiz-gyazo-text-bubble', 'teamj')
$('body').attr('data-daiiz-paste-url-title', 'off')
code:script.js
// 選択された文字列をScrapboxプロジェクト内で検索する
// Scapbox検索ボックスを使ったときと同じ結果ページを開く
scrapbox.PopupMenu.addButton({
title: 'scrapbox検索',
onClick: function (text) {
var projectName = 'kofu-lab';
}
});
pでグローバルメニュー展開
code:script.js
$('body').on('keydown', function (e) {
if (e.target.tagName != "TEXTAREA" && e.target.tagName != "INPUT" && e.target.tagName != "A" && e.target.tagName != "BUTTON") {
if (e.key == 'p') {
document.querySelector(".navbar .navbar-brand").click()
}
}
});
無入力Enterで非watchlist (参加済み) プロジェクトを開く
code:script.js
$('.project-list-filter').on('keydown', function(e) {
if (e.key == 'Enter') {
location.href = "/" + document.querySelector(".global-menu .project-list-filter input").value
}
})
code:script.js
scrapbox.PageMenu.addMenu({
title: 'minimal',
onClick: (e) => {
var style = document.getElementById('__zen__')
if (style) { style.remove(); e.currentTarget.innerText = 'ZZen mode'; return }
else e.currentTarget.innerText = String.fromCharCode(0x02713) + ' ZZen mode'
var css = body, .page { background-color:#22242b !important; background-image:none !important } +
'.navbar:not(:hover), .line .telomere:not(:hover), .col-page-side:not(:hover),.flex-box:not(:hover) { opacity:0 }'
style = document.createElement('style')
style.setAttribute('id', '__zen__')
style.appendChild(document.createTextNode(css))
document.head.appendChild(style)
}
})
code:script.js
scrapbox.PageMenu.addMenu({
title: 'relate-right',
onClick: () => {
const cssid = "related-left";
let e = document.getElementById(cssid);
if(e){
e.remove();
}else{
let css;
fetch('/api/code/kofu-lab/関連ページ一覧を横に移動させる/style.css')
.then(response => response.text())
.then(text => {
css = text;
const style = document.createElement('style');
style.id = cssid;
style.appendChild(document.createTextNode(css));
// document.head.appendChild(style);
document.body.appendChild(style);
});
};
},
});
infoboxがついたページで使うと二重で狭くなってしまう
関連ページを横に移動させたときinfoboxの下に表示するようにしたい #未解決 code:script.js
(function () {
scrapbox.PageMenu.addMenu({
title: 'index',
onClick: () => {
scrapbox.PageMenu('index').removeAllItems()
for (let line of scrapbox.Page.lines) {
if (!line.section.start) continue
const image = line.nodes && getIconUrl(line.nodes)
const noIcon = !!image
const title = line.nodes ? renderPlainText(line.nodes, {noIcon}) : line.text
const onClick = () => location.hash = line.id
scrapbox.PageMenu('index').addItem({title, image, onClick, className: 'midashi-pagemenu-item'})
}
}
})
function renderPlainText (node, options) {
if (node instanceof Array) return node.map(node => renderPlainText(node, options)).join('')
if (typeof node === 'string') return node
switch (node.type) {
case 'icon':
case 'strong-icon':
return options.noIcon ? ' ' : node.unit.page
}
return renderPlainText(node.children, options)
}
function getIconUrl (node) {
if (/icon/.test(node.type)) {
return /api/pages/${node.unit.project||scrapbox.Project.name}/${node.unit.page}/icon
}
if (node instanceof Array) {
return node.map(getIconUrl).find(img => img)
}
if (node.children) return getIconUrl(node.children)
return null
}
})()
見出しpagemenuのポップアップの背景色とかテキスト色を変更したい #未解決 CSSでどうこうの問題?
className: 'midashi-pagemenu-item'を設定 (Geminiくん提案)
だめだった