Some more Dreamwidth tips.
Mar. 21st, 2026 09:13 amHere I am again with some more Dreamwidth tips!
First off, to answer the question in this post, I have made a tagblocker for Dreamwidth. The following code works on the reading page, journal and community pages, and the day view.
for (const a of document.querySelectorAll(".tag")) {if (a.innerHTML.includes(">${TAGNAME}<")) {a.parentElement.parentElement.parentElement.parentElement.parentElement.remove()}}
This code works on the monthly overview page:
for (const a of document.querySelectorAll(".tag")) {if (a.innerHTML.includes(">${TAGNAME}<")) {a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.remove()}}
${TAGNAME} stands for the tag that you're trying to block; it matches the entered tag exactly.
------------
Inspired by this, I've also made something to block posts by a specific user with. This is for the default view:
for (const a of document.querySelectorAll(".entry-poster")) {if (a.innerHTML.includes(">${USERNAME}<")) {a.parentElement.parentElement.parentElement.parentElement.parentElement.remove()}}
And this for the monthly view:
for (const a of document.querySelectorAll(".entry-poster")) {if (a.innerHTML.includes(">${USERNAME}<")) {a.previousSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.remove()}}
As with the tagblocker, this matches the entered username precisely.
I've further made a title-blocker, which looks like this for the default view:
for (const a of document.querySelectorAll(".entry-title")) {if (a.innerHTML.includes("${TITLE}")) {a.parentElement.parentElement.parentElement.parentElement.parentElement.remove()}}
And this for the monthly view:
for (const a of document.querySelectorAll(".entry-title")) {if (a.innerHTML.includes("${TITLE}")) {a.previousSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.previousSibling.remove(); a.nextSibling.remove(); a.remove()}}
Here, the title doesn't match exactly, so you can filter out specific words in titles.
I'm not knowledgeable on the best way to use these scripts, but bookmarklets should at least make them somewhat useable.
----------------------
If you don't want to look at custom-coloured text on Dreamwidth, you can go to the following page and paste this:
font { color: #000000 !important; }
span { color: #000000 !important; }
into the field. This will set most of the coloured text to black.
------------------------
Finally, if you see bugs in Dreamwidth, you can submit a support request. This can lead to the bug being fixed sooner, and might even alert the developers to the bug in the first place (as happened with me), so I certainly encourage you to do so!
And that was it for now; I'll probably be back with more things at some later point.
First off, to answer the question in this post, I have made a tagblocker for Dreamwidth. The following code works on the reading page, journal and community pages, and the day view.
for (const a of document.querySelectorAll(".tag")) {if (a.innerHTML.includes(">${TAGNAME}<")) {a.parentElement.parentElement.parentElement.parentElement.parentElement.remove()}}
This code works on the monthly overview page:
for (const a of document.querySelectorAll(".tag")) {if (a.innerHTML.includes(">${TAGNAME}<")) {a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.previousSibling.remove(); a.remove()}}
${TAGNAME} stands for the tag that you're trying to block; it matches the entered tag exactly.
------------
Inspired by this, I've also made something to block posts by a specific user with. This is for the default view:
for (const a of document.querySelectorAll(".entry-poster")) {if (a.innerHTML.includes(">${USERNAME}<")) {a.parentElement.parentElement.parentElement.parentElement.parentElement.remove()}}
And this for the monthly view:
for (const a of document.querySelectorAll(".entry-poster")) {if (a.innerHTML.includes(">${USERNAME}<")) {a.previousSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.remove()}}
As with the tagblocker, this matches the entered username precisely.
I've further made a title-blocker, which looks like this for the default view:
for (const a of document.querySelectorAll(".entry-title")) {if (a.innerHTML.includes("${TITLE}")) {a.parentElement.parentElement.parentElement.parentElement.parentElement.remove()}}
And this for the monthly view:
for (const a of document.querySelectorAll(".entry-title")) {if (a.innerHTML.includes("${TITLE}")) {a.previousSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.nextSibling.remove(); a.previousSibling.remove(); a.nextSibling.remove(); a.remove()}}
Here, the title doesn't match exactly, so you can filter out specific words in titles.
I'm not knowledgeable on the best way to use these scripts, but bookmarklets should at least make them somewhat useable.
----------------------
If you don't want to look at custom-coloured text on Dreamwidth, you can go to the following page and paste this:
font { color: #000000 !important; }
span { color: #000000 !important; }
into the field. This will set most of the coloured text to black.
------------------------
Finally, if you see bugs in Dreamwidth, you can submit a support request. This can lead to the bug being fixed sooner, and might even alert the developers to the bug in the first place (as happened with me), so I certainly encourage you to do so!
And that was it for now; I'll probably be back with more things at some later point.