本文の文字数をカウントするUserScript
code:script.js
(() => {
const statusDom = document.createElement('li');
statusDom.style.cssText = 'display: flex; align-items: center;';
const navbar = () => document.querySelector('.navbar-menu');
const layoutChanged = () => {
switch (scrapbox.Layout) {
case 'page':
navbar().insertBefore(statusDom, navbar().firstChild);
break;
case 'list':
if (statusDom.parentNode) statusDom.parentNode.removeChild(statusDom);
break;
default:
break;
}
};
const wordCount = () => {
if (!window.scrapbox.Page.lines) return;
const bodyLines = scrapbox.Page.lines.slice(1);
const lineCount = bodyLines.length;
const charCount = bodyLines.map(m => m.text.length).reduce((a, b) => a + b, 0);
statusDom.innerText = ${lineCount}行; // ${lineCount}行 / ${charCount}文字;
};
wordCount();
layoutChanged();
scrapbox.on('lines:changed', wordCount);
scrapbox.on('layout:changed', layoutChanged);
})();
更新履歴
作成(2021/12/16)