onemillionfurries

married to Dr. Baldhead

Dr. Luvstruk
Purple mad scientist tiger from Canada
Will probably get kinky and nsfw at times
a Queer Villain Pride blinkie


lexi
@lexi

if you ever wanted to :awoo: in chosts, you're in luck: now you can! 'awoo' sign, showing a wolf howling

i ported the @mutant standard emoji set by @dzuk to cohost with a userscript + a website!

features:

  • it supports the full mutant standard emoji set smiling smiley smiley making a ':3' face smiley making a relaxed face while being headpatted dark elf orc slime transgender flag furry pride 'aro' sign cannabis leaf CRT showing green blocks cascading in a vertical pattern 'awoo' sign, showing a wolf howling paw hand modifier
  • it supports all variations, and has a picker for them hand hand (light sky blue) hand (medium skin tone) paw hand paw hand (light cyan) paw hand (tan fur colour) claw hand claw hand (light sky blue) claw hand (light gray) claw hand claw hand (light sky blue) claw hand (light gray)
  • you can make emojis in the default size paw hand (tan fur colour) or bigger paw hand (tan fur colour)
  • it's fully accessible (automatically sets alt text & title based on emoji metadata, eg alt="paw hand (tan fur colour)" title="paw hand (tan fur colour)")
  • it supports cohost posts as well as comments, and autodetects comment sections
  • you can even use it in other places that support markdown/HTML
  • everyone can see them, even if they do not have the script installed
  • it has a nice UI for picking emojis

emoji picker and variant selector

you can use it at https://mutant.us.to (no userscript required), and install the userscript (what is that?/how do i install that?) from there, and you can open the emoji picker by pressing CTRL+. (and Control+. on macOS) or the smiley making a ':3' face icon next to the old emoji button! and the source code is available on github (but it is a bit messy lol)

EDIT: i forgot to add an update URL, so if you installed it before i edited this in: reinstall the userscript you will get updates now (and there will be a few)

EDIT 2: i released a new update with a bunch of features! https://cohost.org/lexi/post/474136-b-style-font-size

a few technical details for nerds:


turns out that writing an emoji picker as an userscript is pretty hard! the svelte code (which is completely reactive, making the whole code a lot simpler) is already pretty big:

screenshot of a lot of HTML code

and i initially tried to make that HTML structure with js, but turns out that writing a DOM that big with js only is awful, so i knew i had to use some form of html to js compiler, and if im already going down that path i can embed a whole framework. and turns out that that is surprisingly easy! i used svelte, which gives you an index.html, and a CSS as well as a JS build file. so i wrote a small compiler that targets a svelte app into an existing react app in an userscript. it essentially boils down to a bundler, and a CSS to JS compiler (which creates a <style> tag and injects that) and a simple custom svelte loader, which makes an element in the react app and hooks svelte into that. and i bundled in the GM_fetch library, because if you want to make a cross-origin request from an userscript you need to use XMLHttpRequest otherwise and i am Not doing that. also, window.onload is called twice for some reason so i made a small check to see if its already running. idk why it does that, but it works lol

also, if you inspect the source code on mutant.us.to, you'll notice that it's just an iframe, which may seem dumb, but it has a reason: future-proofing. the emojis are hosted on github pages, and that wont go down super easily, but i wanted a domain that won't go down if i forget to renew it which is easy to remember (not like the gh pages one), so i use afraid.org which is super reliable, but that doesn't support CNAME entries, so i host an iframe on my server so that even if that goes down, the emojis themselves still work, and it just redirects to github pages. should be pretty futureproof!


@onemillionfurries shared with:

You must log in to comment.

in reply to @lexi's post:

pushed a last second update because the markdown links didn't say the name of the generator before, but should work now!

'awoo' sign, showing a wolf howling

edit: yep, update is live & works :)

image showing the source of this comment

this kicks ass and has me thinkin about adding at least some of the mutant standard emoji to our custom set............

one suggestion: in html mode, you should consider setting the height to var(--emoji-scale), which we calculate for our own custom emoji to have their sizes visually match up with how your browser renders native emoji! (for example, on windows 11 firefox it's set to 1.4em). obvs optional but something to consider!

thanks!! right now it’s a question of if we Can under the terms of the license (cohost is technically a commercial entity so unsure if we meet the non-commercial requirement) but we’ll see!

For whatever reason I can't seem to get the CTRL+. shortcut to work on linux mint + firefox, i'm baffled, any idea what I could be doing wrong here?

edit: actually it doesn't work on windows either? maybe its a greasemonkey problem.

edit 2: yes it was a greasemonkey problem, if you are having trouble like i was, use tampermonkey instead.

so i use afraid.org which is super reliable, but that doesn't support CNAME entries

you probably already know this, but just in case, did you know you can do CNAME records if you use afraid’s secondary service with your own primary? (also works with he.net’s secondary)

what are either of you talking about‽ literally the first time i used freedns i made a cname on a public domain name with no issues (at least until it went down for unrelated reasons, rip 69.mu)

here i just did it again http://hecko.my.to/ (you can tell it's fresh because there's no ssl yet)

did my account get grandfathered in or something because i know i made it years ago for no specific reason

ooooh this is super cool!

one little note - when it tries to load the emoji data tampermonkey will pop up with an "A userscript wants to access a cross-origin resource" page the user needs to manually accept, you can add a connect to the metadata block (@connect lxhom.github.io) to prevent that

also it seems to be broken on greasemonkey (happens a lot, usually it's caused by how they sandbox scripts), I'll see if I can get it working on there

it attributes it on the source code and on the installation/preview website and all of the images generated have that website as an url in it so it should be fine (also dzuk thinks its cool and hasnt pointed out a licensing issue so i think i did it correctly lol)