増田でこの記事を見つけて、TamperMonkeyで出来そうだったからやってみました。
動作保証もサポートもする気はないので、使い方が分からなかった人とか環境か何かで動かなかった人は潔く諦めてくださいね。
// ==UserScript== // @name 増田のトラバツリーを開閉 // @namespace http://tampermonkey.net/ // @version 2024-05-06 // @description try to take over the world! // @author You // @match https://anond.hatelabo.jp/* // @icon https://anond.hatelabo.jp/images/favicon.ico // @grant none // ==/UserScript== (function() { 'use strict'; if (location.pathname.match('/[0-9]+(/|$)') == null) { return } const buttonClicked = e => { if (e.target != null) { if (e.target.textContent == '🔽') { e.target.textContent = '🔺' e.target.parentNode.parentNode.className = 'trackback-closed' } else if (e.target.textContent == '🔺') { e.target.textContent = '🔽' e.target.parentNode.parentNode.className = '' } } } const processListItem = li => { if (li.querySelectorAll(':scope > ul > li').length <= 0) { return } const header = li.querySelector('.trackback-header') if (header != null) { header.insertAdjacentHTML('beforeend', ` <button type="button" class="close-trackback">🔽</button> `) header.querySelector('.close-trackback') .addEventListener('click', buttonClicked) } Array.from(li.querySelectorAll(':scope > ul > li')) .map(child => processListItem(child)) } Array.from(document.querySelectorAll('.refererlist > ul > li')) .map(li => processListItem(li)) document.head.insertAdjacentHTML('beforeend', ` <style> .close-trackback { border: 0 } .trackback-closed > ul { display: none } </style> `) })();