(Experimental?) New Features in Kibicat Mastodon
The other day I was talking with some friends about the “old days” before Mastodon supported CWs, and how we used to EBG13 nyy bs bhe cbfgf because, guess what, if Mastodon didn’t have CWs we still wouldn’t throw nyy guvf fuvg out in the open. I realized that I actually kind of liked ROT13 better than the current system, because you could only ROT13 ⁜cneg⁜ bs n cbfg and the remainder would give the reader context as to how the problematic bit was being used.
Then I realized that our old ROT13 system was an effective plaintext fallback for pbagrzcbenel Qvfpbeq-fglyr fcbvyre gntf and that I could just implement that in Mastodon, so I did.
GlitchCat users! You can now create inline spoilers in your posts by using a <spoiler-text>
HTML tag in either the Markdown or HTML content modes. Spoilers ⁜can⁜ include emoji but ⁜cannot⁜ include other markup like links, mentions, or hashtags.
Spoilers federate as ROT13 with special properties so that other servers can recognize them. If you are on another Mastodon instance which supports Markdown and HTML content modes, let me know and I can get you a patch!
@Lady oh that's neat! maybe i'll hack gotosocial to do it too
@KitRedgrave it’s super not difficult from a backend perspective; just a simple element replacement
@KitRedgrave here’s the mastodon implementation (L122–137)
https://gitlab.com/kibicat/mastodon/-/blob/trunk/app/lib/advanced_text_formatter.rb#L122-137
@Lady yeah i think the hard part for me will be figuring out how to build and push gotosocial to my microk8s "cluster" of one vps
@KitRedgrave i guess i can just link the commit for a full picture of what backend support looks like
the frontend is the more tricky bit; i don’t know what the current state of gotosocial frontends are or if any of them even support HTML/Markdown posts
@Lady i use pinafore which i know does support markdown
@KitRedgrave wonder how hard it would be to get frontend support into pinafore lol
surely easier than it was for mastodon
@Lady @KitRedgrave they explicitly target only upstream’s featureset as a scope limitation so i think that would actually be pretty difficult to convince them to do
@KitRedgrave @Lady yes
@KitRedgrave @Lady very
@KitRedgrave @aescling it’s not hard conceptually; the spoilers look like
<span property="tag:ns.1024.gdn,2022-11-11:spoiler_text" content="The actual content of the post">Typically ROT13 but it doesn’t matter; ignore this</span>
you just match spans with that property attribute, pull their content attribute, and replace them with a spoiler toggle (which is not hard to make)
@KitRedgrave @aescling doing this in Mastodon!React is a nightmare but
@KitRedgrave @aescling so on a supporting instance like here, you never see the ROT13, that’s just the fallback for the rest of you
@KitRedgrave @aescling yeah i mean honestly the only reason i did this slightly more complicated thing is because ROT13 is really bad for accessibility and i couldn’t in good conscience promote it on the wider fediverse without some way of easily recovering the original text
@KitRedgrave @aescling but i mean you could easily just do the backend support, only see the rot13 fallback on your own instance, but have it show up as spoilertext here 😈
@Lady @aescling ah. i'm actually totally fine with that lol
though spoiler blackout is a nice add...