scrapbox-char-accessor-2
変更点
即時objectは使わない
独自のobjectも使わないか、使っても内部に隠蔽する
dependency
code:script.js
import {getIndex as getLineNo} from '../scrapbox-line-accessor-2/script.js';
export function getIndex(value) {
switch (typeof value) {
case 'number':
return value;
case 'object':
return parseInt(getDOM(value).className.match(/c-(\d)/)1); default:
throw Error('Invalid argument');
}
}
export function getDOM(value) {
switch (typeof value) {
case 'object':
const dom = value.matches?.('spanclass^="c-"') ? value : // 子要素をたどって、一番先頭の文字のDOMを使う
if (!dom) throw Error ('No char DOM found or invalid DOM object');
return dom;
default:
throw Error('Invalid argument');
}
}
export function getText(value) {
switch (typeof value) {
case 'object':
default:
throw Error('Invalid argument');
}
}
export function isHead(value) {
return getIndex(value) === 0;
}