はてなブックマークであまり見たくないサイトがあるのだけど除外する機能がなかったので、ChatGPT に相談して特定ドメインの記事を非表示にする簡単なブックマークレットを作ってみました。
変数 urls にカンマ区切りで対象サイトのドメインを指定します。 変数 keywords にカンマ区切りでキーワードを指定するとタイトルも非表示にできます。
javascript:(function() { if (!document.location.toString().includes('b.hatena.ne.jp')) { return; } const urls = 'example.com,example.jp'; const keywords = 'keyword1,keyword2'; const domainsToHide = urls.split(',').map(domain => domain.trim()); const keywordsToHide = keywords.split(',').map(keyword => keyword.trim()); if (domainsToHide.length === 0 && keywordsToHide.length === 0) return; const items = document.querySelectorAll('.entrylist-contents'); items.forEach(item => { const domainElement = item.querySelector('.entrylist-contents-domain span'); let shouldHide = false; if (domainElement) { const domain = domainElement.textContent.trim(); const domainOnly = domain.split('/')[0]; if (domainsToHide.includes(domainOnly)) { shouldHide = true; } } const titleElement = item.querySelector('.entrylist-contents-title'); if (titleElement && !shouldHide) { const titleText = titleElement.textContent.trim(); if (keywordsToHide.some(keyword => titleText.includes(keyword))) { shouldHide = true; } } if (shouldHide) { item.style.display = 'none'; } }); })();
これが。。

こうなります。

Firefox で動作確認をしています。
コードは自由に改変してご利用ください。
Greasemonkey を使うとブックマークレットのクリックが不要になるのでなお便利。
// ==UserScript== // @name はてブフィルター // @version 1 // @grant none // ==/UserScript== if (!document.location.toString().includes('b.hatena.ne.jp')) { return; } const urls = 'example.com,example.jp'; const keywords = 'keyword1,keyword2'; const domainsToHide = urls.split(',').map(domain => domain.trim()); const keywordsToHide = keywords.split(',').map(keyword => keyword.trim()); if (domainsToHide.length === 0 && keywordsToHide.length === 0) return; const items = document.querySelectorAll('.entrylist-contents'); items.forEach(item => { const domainElement = item.querySelector('.entrylist-contents-domain span'); let shouldHide = false; if (domainElement) { const domain = domainElement.textContent.trim(); const domainOnly = domain.split('/')[0]; if (domainsToHide.includes(domainOnly)) { shouldHide = true; } } const titleElement = item.querySelector('.entrylist-contents-title'); if (titleElement && !shouldHide) { const titleText = titleElement.textContent.trim(); if (keywordsToHide.some(keyword => titleText.includes(keyword))) { shouldHide = true; } } if (shouldHide) { item.style.display = 'none'; } });