per_terra
https://scrapbox.io/files/63a1b22790a504001e209589.png
その辺の学生です
/icons/hr.icon
UserScript
code:script.js
scrapbox.PopupMenu.addButton({
title: function (text) {
const chars = text.replace(/\r\n/g, '').length; const words = text.trim().split(/\r\n\s+/).length; return ${chars}c ${words}w;
},
onClick: () => null
});
code:script.js
(() => {
const counters = document.createElement('div');
counters.setAttribute('class', 'counters');
const counts = counters.appendChild(document.createElement('span'));
counts.setAttribute('class', 'item');
const statusBar = document.getElementsByClassName('status-bar')0; if (scrapbox.Layout == 'page') {
statusBar.appendChild(counters);
}
scrapbox.on('layout:changed', () => {
if (scrapbox.Layout == 'page') {
statusBar.prepend(counters);
} else {
statusBar.removeChild(counters);
}
});
const updateCounts = () => {
if (!window.scrapbox.Page.lines) return;
const chars = scrapbox.Page.lines.map(line => line.text.length).reduce((a, b) => a + b);
const words = scrapbox.Page.lines.map(line => line.text.split(/\s/).length).reduce((a, b) => a + b);
const lines = scrapbox.Page.lines.length;
counts.innerText = ${words} words, ${chars} chars, ${lines} lines;
}
updateCounts();
scrapbox.on('lines:changed', updateCounts);
})();
Alt + -で挿入
code:script.js
document.addEventListener('keydown', e => {
if (e.altKey && e.key === '-') {
document.execCommand('insertText', null, '/icons/hr.icon')
}
});
タイムスタンプの追加
code:script.js
scrapbox.TimeStamp.addFormat('#YYYY-MM-DD HH:mm:ss');
scrapbox.TimeStamp.addFormat('YYYY-MM-DD');
/icons/hr.icon
UserCSS
code:style.before-bundle.css
@import url("/api/code/per-terra/titleの隣に「公開」と表示する/style.css");
code:style.css
.navbar .row .project-home:after{display:block;flex-shrink:0;padding:4px;margin-left:6px;font-size:14px;font-weight:700;line-height:14px;color:#fff;content:"公開";background-color:#e00;border-radius:3px}