特定のページを非表示にする支援UserScript
suto3.icon何をやっているかは見ればわかるよね
実装がダサいので、だれか直して
フィルタ
code:script.js
//条件1
const lists1 = [
'test',
'テスト',
'(WIP)',
'作業中',
'-button',
'Scrapbox',
'settings' // テストのため非表示にする
];
//条件2
// バカフィルタ
// アルファベットと半角数字を含むページを非表示にする
const lists2 = [
'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'1','2','3','4','5','6','7','8','9','0'
];
//条件3
// バカフィルタ
// ひらがな・カタカナを含むページを非表示にする
// 多くの日本語タイトルのページが非表示になる
// 仕組み上、漢字のみのタイトルのページは影響を受けない
const lists3 = [
'あ','い','う','え','お',
'か','き','く','け','こ',
'さ','し','す','せ','そ',
'た','ち','つ','て','と',
'な','に','ぬ','ね','の',
'は','ひ','ふ','へ','ほ',
'ま','み','む','め','も',
'や','ゆ','よ',
'ら','り','る','れ','ろ',
'わ','ゐ','う','ゑ','を',
'ん',
'ア','イ','ウ','エ','オ',
'カ','キ','ク','ケ','コ',
'サ','シ','ス','セ','ソ',
'タ','チ','ツ','テ','ト',
'ナ','ニ','ヌ','ネ','ノ',
'ハ','ヒ','フ','ヘ','ホ',
'マ','ミ','ム','メ','モ',
'ヤ','ユ','ヨ',
'ラ','リ','ル','レ','ロ',
'ワ','ヰ','ウ','ヱ','ヲ',
'ン',
'ゔ',
'が','ぎ','ぐ','げ','ご',
'ざ','じ','ず','ぜ','ぞ',
'だ','ぢ','づ','で','ど',
'ば','び','ぶ','べ','ぼ',
'ヴ',
'ガ','ギ','グ','ゲ','ゴ',
'ザ','ジ','ズ','ゼ','ゾ',
'ダ','ヂ','ヅ','デ','ド',
'バ','ビ','ブ','ベ','ボ',
'ヷ','ヸ','ヹ','ヺ',
'ぱ','ぴ','ぷ','ぺ','ぽ',
'パ','ピ','プ','ペ','ポ'
];
CSSを作って変更する関数
code:script.js
const mode_id = '__filter__'
const change_style = keyword_lists => {
// let list = '';
// keyword_lists.forEach((hide) => {
// });
const list = keyword_lists.map((hide) => [data-page-title*='${hide}']).join(',\n');
//console.log(list);
const style = document.getElementById(mode_id);
style?.remove?.();
document.head.insertAdjacentHTML('beforeend',`
<style id="${mode_id}">
.page-list-item:is(
${list}
) {
display: none !important;
}
</style>
`);
}
表示部
code:script.js
const menu_title = '特定のページを非表示にする' ;
scrapbox.PageMenu.addMenu({
title: menu_title,
});
scrapbox.PageMenu(menu_title).addItem({
title: "1",
onClick: () => {change_style(lists1);}
});
scrapbox.PageMenu(menu_title).addItem({
title: "2",
onClick: () => {change_style(lists2);}
});
scrapbox.PageMenu(menu_title).addItem({
title: "3",
onClick: () => {change_style(lists3);}
});
scrapbox.PageMenu(menu_title).addItem({
title: '取消',
onClick: () => {
document.getElementById(mode_id)?.remove?.();
}
});
とりあえずforEachしてる所をmapに変えてみたkuuote.icon
動作確認してないので動かなかったらスマソ
微修正takker.icon
UserScript.icon