chat did you know that in js the second argument for .replace() supports replacement patterns??
even if the needle is a string???
and bc of that you can't pass user-provided content there without wrapping it in a function???
holy fucking shit why is this a thing