|
1 | 1 | // ==UserScript==
|
2 | 2 | // @name GitHub Collapse Markdown
|
3 |
| -// @version 1.1.3 |
| 3 | +// @version 1.1.4 |
4 | 4 | // @description A userscript that collapses markdown headers
|
5 | 5 | // @license https://creativecommons.org/licenses/by-sa/4.0/
|
6 | 6 | // @namespace https://github.com/Mottie
|
|
100 | 100 | function nextHeader(el, level, isCollapsed) {
|
101 | 101 | el.classList[isCollapsed ? "add" : "remove"](collapsed);
|
102 | 102 | const selector = headers.slice(0, level).join(","),
|
| 103 | + name = [collapsed, "ghcm-hidden"], |
103 | 104 | els = [];
|
104 | 105 | el = el.nextElementSibling;
|
105 | 106 | while (el && !el.matches(selector)) {
|
|
108 | 109 | }
|
109 | 110 | if (els.length) {
|
110 | 111 | if (isCollapsed) {
|
111 |
| - addClass(els, "ghcm-hidden"); |
| 112 | + els.forEach(el => { |
| 113 | + el.classList.add("ghcm-hidden"); |
| 114 | + }); |
112 | 115 | } else {
|
113 |
| - removeClass(els, collapsed + " ghcm-hidden"); |
| 116 | + els.forEach(el => { |
| 117 | + el.classList.remove(...name); |
| 118 | + }); |
114 | 119 | }
|
115 | 120 | }
|
116 | 121 | }
|
|
231 | 236 | return Array.from((el || document).querySelectorAll(selectors));
|
232 | 237 | }
|
233 | 238 |
|
234 |
| - function addClass(els, name) { |
235 |
| - for (const el of els) { |
236 |
| - el.classList.add(name); |
237 |
| - } |
238 |
| - } |
239 |
| - |
240 |
| - function removeClass(els, name) { |
241 |
| - name = (name || "").split(" "); |
242 |
| - for (const el of els) { |
243 |
| - el.classList.remove(...name); |
244 |
| - } |
245 |
| - } |
246 |
| - |
247 | 239 | function closest(el, selector) {
|
248 | 240 | while (el && el.nodeName !== "BODY" && !el.matches(selector)) {
|
249 | 241 | el = el.parentNode;
|
|
0 commit comments