shakespeare.exe

Replaces modern words/phrases with Shakespearean language on dynamic websites like Medium.com

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey, Greasemonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

You will need to install an extension such as Tampermonkey to install this script.

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         shakespeare.exe
// @namespace    http://github.com/pari55051
// @version      1.0
// @description  Replaces modern words/phrases with Shakespearean language on dynamic websites like Medium.com
// @author       You
// @match        https://*.medium.com/*
// @match        https://medium.com/*
// @match        https://*.wikipedia.org/*
// @match        https://*.reddit.com/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // dataset for replacements
    const phraseDict = {
        "how are you": "how doth thee fare",
        "what's up": "what news dost thou bring",
        "i don't know": "i knoweth not",
        "i'm tired": "i am weary",
        "i'm hungry": "my stomach doth rumble",
        "no way": "fie! it cannot be!",
        "okay": "'tis agreeable",
        "wait a minute": "prithee, tarry a moment",
        "be right back": "i shall return anon",
        "i'm sorry": "i beg thy pardon",
        "that's awesome": "'tis wondrous indeed",
        "that's amazing": "'tis wondrous indeed",
        "just kidding": "i jest, good sir/madam",
        "calm down": "hold thy tongue and be still",
        "i love you": "i doth adore thee",
        "i hate this": "i abhor this vile thing",
        "i'm so happy": "my heart singeth with joy",
        "i'm mad": "i am filled with wrath",
        "that's funny": "'tis a merry jest",
        "i'm scared": "i am afeard",
        "you're annoying": "thou art vexing",
        "shut up": "hold thy tongue",
        "you're stupid": "thou art a fool",
        "get lost": "remove thyself hence",
        "leave me alone": "remove thyself hence",
        "i don't care": "'tis naught to me",
        "see you soon": "i shall see thee anon",
        "let's go": "let us hence",
        "what the heck": "what devilry is this",
        "seriously?": "dost thou jest?",
        "good luck": "fortune smile upon thee",
        "who are you": "who art thou",
        "what are you doing": "what dost thou",
        "i am fine": "i fare well",
        "are you serious": "speaketh thou in earnest",
        "this is hard": "this task grieveth me",
        "it's not my fault": "the blame resteth not with me",
        "good morning": "good morrow",
        "good night": "good e'en",
        "thank you": "i give thee thanks",
        "you're welcome": "thou art welcome",
        "excuse me": "pardon me, good sir/madam",
        "congratulations": "well done, well said",
        "how old are you": "what age hast thou?",
        "i missed you": "i hath longed for thee",
        "what do you mean": "what dost thou intend?",
        "i agree": "'tis a notion most agreeable",
        "do you understand": "dost thou comprehend?",
        "what time is it": "which hour be it now?",
        "what's your name": "what be thy name?",
        "are you okay": "dost thou fare well?",
        "don't worry": "fret not thyself",
        "i'm bored": "i am listless of soul",
        "i'm busy": "i am o'ertasked"
    }

    const wordDict = {
        "shorten": "abate",
        "blunt": "abate",
        "diminution": "abatement",
        "protest": "abhor",
        "disgust": "abhor",
        "brook": "abrook",
        "abide": "abrook",
        "primer": "absey-book",
        "positive": "absolute",
        "deceive": "abuse",
        "deception": "abuse",
        "abyss": "abysm",
        "cite": "accite",
        "summon": "accite",
        "action": "acture",
        "title": "addition",
        "attribute": "addition",
        "prepared": "addressed",
        "prefer": "advance",
        "admonition": "advertisement",
        "attentive": "advertising",
        "consideration": "advice",
        "discretion": "advice",
        "consider": "advise",
        "considerate": "advised",
        "pleading": "advocation",
        "afraid": "afeared",
        "love": "affect",
        "acknowledge": "agnise",
        "plenteously": "a-good",
        "sea-term": "a-hold",
        "acceptance": "allowance",
        "alms": "almose",
        "aim": "level",
        "loyal": "amorous",
        "animal": "beast",
        "spirit": "sprite",
        "anger": "choler",
        "appeal": "solicitation",
        "appear": "present",
        "appearance": "show",
        "apply": "betake",
        "approach": "draw near",
        "argue": "dispute",
        "argument": "contention",
        "armor": "armour",
        "army": "host",
        "around": "about",
        "arrest": "attach",
        "arrive": "hither",
        "art": "craft",
        "ashamed": "confounded",
        "ask": "inquire",
        "assistance": "aidance",
        "atmosphere": "air",
        "attack": "assail",
        "attempt": "essai",
        "attention": "heed",
        "attract": "draw",
        "avoid": "eschew",
        "awake": "waken",
        "away": "hence",
        "awful": "direful",
        "baby": "babe",
        "back": "rearward",
        "bad": "vile",
        "bake": "sod",
        "balance": "poise",
        "banish": "exile",
        "bar": "obstruct",
        "bargain": "compact",
        "battle": "battalia",
        "beautiful": "beauteous",
        "beauty": "comeliness",
        "beg": "beseech",
        "begin": "commence",
        "beginning": "onset",
        "behavior": "demeanor",
        "believe": "credit",
        "beloved": "dear",
        "betray": "beguile",
        "better": "ameliorate",
        "between": "betwixt",
        "beware": "look to",
        "big": "vast",
        "bird": "fowl",
        "birth": "nativity",
        "bite": "nibble",
        "black": "swart",
        "blame": "censure",
        "bless": "benison",
        "blind": "sightless",
        "blood": "gore",
        "blow": "smite",
        "blue": "azure",
        "boast": "vaunt",
        "body": "trunk",
        "bold": "valiant",
        "book": "folio",
        "bore": "wearied",
        "borrow": "lend me",
        "bother": "vex",
        "brave": "gallant",
        "bread": "loaf",
        "break": "rend",
        "breathe": "respire",
        "bride": "new-made wife",
        "bright": "radiant",
        "bring": "fetch",
        "brother": "kinsman",
        "build": "erect",
        "burn": "scorch",
        "bury": "entomb",
        "busy": "engaged",
        "buy": "purchase",
        "by": "nigh",
        "call": "hail",
        "calm": "tranquil",
        "can": "mayst",
        "care": "regard",
        "carry": "bear",
        "cause": "occasion",
        "cease": "desist",
        "certainly": "forsooth",
        "chain": "fetter",
        "change": "alter",
        "charge": "impose",
        "charm": "enchant",
        "cheap": "base-born",
        "cheat": "cozen",
        "cheer": "mirth",
        "child": "urchin",
        "choice": "election",
        "choose": "prefer",
        "circle": "orb",
        "city": "town",
        "claim": "demand",
        "clarify": "expound",
        "clear": "lucid",
        "climb": "ascend",
        "close": "nigh",
        "cloud": "mist",
        "cold": "chill",
        "come": "approach",
        "comfort": "succor",
        "command": "bid",
        "companion": "compeer",
        "complain": "bemoan",
        "complete": "entire",
        "complexion": "hue",
        "compliment": "obeisance",
        "conceal": "shroud",
        "concern": "import",
        "confess": "acknowledge",
        "confidence": "assurance",
        "confuse": "perplex",
        "conquer": "o'ercome",
        "consider": "bethink",
        "constant": "steadfast",
        "content": "satisfied",
        "continue": "persist",
        "control": "govern",
        "conversation": "parley",
        "cook": "cater",
        "correct": "chasten",
        "courage": "mettle",
        "course": "progress",
        "court": "palace",
        "coward": "craven",
        "crazy": "mad",
        "create": "beget",
        "creature": "wight",
        "cry": "weep",
        "cut": "hew",
        "damage": "harm",
        "danger": "peril",
        "dare": "durst",
        "dark": "dismal",
        "daughter": "maid",
        "day": "morrow",
        "dead": "deceased",
        "dear": "belov’d",
        "death": "doom",
        "debt": "due",
        "deceive": "delude",
        "decide": "determine",
        "declare": "proclaim",
        "deep": "profound",
        "defend": "shield",
        "delay": "tarry",
        "delight": "joy",
        "deliver": "rescue",
        "demand": "require",
        "deny": "gainsay",
        "depart": "part",
        "depend": "rely",
        "describe": "depict",
        "desert": "wilderness",
        "deserve": "merit",
        "desire": "wish",
        "destroy": "ruin",
        "devil": "fiend",
        "die": "perish",
        "difficult": "arduous",
        "dinner": "repast",
        "dirty": "foul",
        "disappear": "vanish",
        "discuss": "confer",
        "dish": "trencher",
        "dislike": "mislike",
        "distant": "far-off",
        "disturb": "disquiet",
        "divide": "part",
        "do": "perform",
        "doctor": "leech",
        "dog": "cur",
        "door": "portal",
        "doubt": "mistrust",
        "down": "aloft",
        "dream": "vision",
        "drink": "quaff",
        "drive": "urge",
        "drunk": "besotted",
        "dry": "arid",
        "duke": "noble",
        "each": "every",
        "eager": "keen",
        "early": "anon",
        "earnest": "grave",
        "earth": "terra",
        "easy": "gentle",
        "eat": "devour",
        "education": "learning",
        "effort": "endeavor",
        "either": "aught",
        "elder": "ancient",
        "election": "choice",
        "else": "otherwise",
        "embrace": "enfold",
        "emotion": "passion",
        "emperor": "monarch",
        "empty": "bare",
        "end": "conclusion",
        "enemy": "foe",
        "energy": "vigor",
        "engage": "employ",
        "english": "anglish",
        "enjoy": "relish",
        "enough": "sufficient",
        "enter": "pass into",
        "entire": "whole",
        "envy": "malice",
        "equal": "alike",
        "error": "mistake",
        "escape": "flee",
        "especially": "specially",
        "esteem": "regard",
        "even": "e'en",
        "every": "each",
        "evil": "ill",
        "example": "precedent",
        "exchange": "barter",
        "excuse": "pardon",
        "exist": "be",
        "expect": "await",
        "explain": "expound",
        "eye": "orb",
        "face": "visage",
        "fail": "falter",
        "fair": "beauteous",
        "faith": "troth",
        "false": "untrue",
        "family": "kin",
        "famous": "renown’d",
        "far": "afar",
        "farewell": "adieu",
        "fast": "swift",
        "fat": "portly",
        "fault": "offense",
        "fear": "dread",
        "feast": "banquet",
        "feel": "perceive",
        "fellow": "sirrah",
        "fetch": "go bring",
        "few": "scant",
        "fight": "duel",
        "figure": "likeness",
        "fill": "stuff",
        "final": "utmost",
        "find": "discover",
        "fine": "dainty",
        "finger": "digit",
        "finish": "complete",
        "fire": "flame",
        "first": "foremost",
        "fish": "finny",
        "fit": "meet",
        "fix": "mend",
        "flesh": "meat",
        "flight": "soaring",
        "flourish": "blossom",
        "fly": "flee",
        "follow": "attend",
        "gift": "boon",
        "girl": "lass",
        "give": "bestow",
        "glad": "joyous",
        "glass": "looking-glass",
        "go": "wend",
        "god": "deity",
        "good": "virtuous",
        "goodbye": "fare thee well",
        "goose": "fowl",
        "grace": "favour",
        "great": "grand",
        "green": "verdant",
        "greet": "hail",
        "grief": "woe",
        "groan": "moan",
        "ground": "soil",
        "group": "company",
        "grow": "wax",
        "guard": "sentry",
        "guess": "reckon",
        "guide": "pilot",
        "guilty": "culpable",
        "gun": "culverin",
        "guy": "fellow",
        "habit": "custom",
        "hair": "locks",
        "half": "moiety",
        "hand": "palm",
        "handsome": "fair",
        "hang": "suspend",
        "happen": "befall",
        "happy": "blithe",
        "hard": "stiff",
        "hate": "abhor",
        "have": "possess",
        "head": "crown",
        "hear": "hearken",
        "heart": "bosom",
        "heaven": "paradise",
        "heavy": "weighty",
        "help": "succor",
        "her": "herself",
        "here": "hither",
        "hero": "champion",
        "hide": "conceal",
        "high": "lofty",
        "hill": "knoll",
        "hire": "engage",
        "hold": "grasp",
        "hole": "pit",
        "holy": "sacred",
        "home": "hearth",
        "honest": "true-hearted",
        "honor": "glory",
        "hope": "aspire",
        "horse": "steed",
        "host": "innkeeper",
        "hour": "clock's strike",
        "house": "dwelling",
        "how": "how now",
        "however": "nevertheless",
        "hug": "embrace",
        "humble": "lowly",
        "hunger": "famine",
        "hunt": "chase",
        "hurry": "haste",
        "hurt": "wound",
        "husband": "spouse",
        "idea": "notion",
        "idle": "slothful",
        "if": "an",
        "ill": "sickly",
        "image": "likeness",
        "imagine": "fancy",
        "important": "grave",
        "impossible": "unthinkable",
        "improve": "better",
        "in": "within",
        "include": "comprise",
        "increase": "wax",
        "indeed": "verily",
        "infant": "babe",
        "inquire": "demand",
        "inside": "within",
        "instead": "in lieu",
        "intelligent": "learned",
        "interest": "concern",
        "invite": "bid",
        "iron": "metal",
        "is": "be",
        "island": "isle",
        "it": "'tis",
        "item": "article",
        "its": "its own",
        "jail": "gaol",
        "joke": "jest",
        "joy": "glee",
        "judge": "magistrate",
        "jump": "leap",
        "keep": "retain",
        "kill": "slay",
        "kind": "gentle",
        "king": "sovereign",
        "kiss": "osculation",
        "know": "ken",
        "lad": "youth",
        "lady": "mistress",
        "lake": "mere",
        "land": "realm",
        "large": "ample",
        "last": "final",
        "laugh": "jest",
        "law": "edict",
        "lazy": "idle",
        "lead": "conduct",
        "leader": "chieftain",
        "learn": "study",
        "leave": "depart",
        "left": "port",
        "lend": "loan",
        "less": "fewer",
        "let": "allow",
        "letter": "missive",
        "lie": "falsehood",
        "life": "existence",
        "light": "glow",
        "like": "fancy",
        "limit": "bound",
        "listen": "attend",
        "little": "petty",
        "live": "dwell",
        "look": "gaze",
        "lord": "liege",
        "lose": "forfeit",
        "love": "adore",
        "loyal": "faithful",
        "luck": "fortune",
        "mad": "lunatic",
        "maid": "damsel",
        "make": "fashion",
        "man": "gentleman",
        "many": "manifold",
        "map": "chart",
        "march": "tread",
        "market": "bazaar",
        "marriage": "matrimony",
        "marry": "wed",
        "master": "lord",
        "match": "contest",
        "matter": "import",
        "may": "might",
        "meal": "repast",
        "mean": "intend",
        "meddle": "interlope",
        "meet": "encounter",
        "melt": "dissolve",
        "member": "limb",
        "memory": "remembrance",
        "message": "missive",
        "midnight": "witching hour",
        "might": "strength",
        "milk": "lactate",
        "mind": "thought",
        "mine": "my own",
        "minute": "moment",
        "mirror": "glass",
        "miss": "lack",
        "mistake": "error",
        "mock": "deride",
        "money": "coin",
        "moon": "orb of night",
        "more": "greater",
        "morning": "morn",
        "mother": "dam",
        "mouth": "maw",
        "move": "stir",
        "much": "greatly",
        "murder": "slaughter",
        "music": "melody",
        "must": "needs must",
        "name": "appellation",
        "narrow": "slender",
        "nation": "realm",
        "nature": "humour",
        "near": "nigh",
        "need": "requirement",
        "neighbor": "neighbour",
        "neither": "nor",
        "never": "ne'er",
        "new": "novel",
        "news": "tidings",
        "next": "nighest",
        "night": "eve",
        "no": "nay",
        "noise": "clamour",
        "none": "naught",
        "normal": "usual",
        "not": "nay",
        "nothing": "naught",
        "now": "presently",
        "number": "score",
        "obey": "submit",
        "object": "thing",
        "observe": "mark",
        "obtain": "procure",
        "occasion": "juncture",
        "ocean": "main",
        "old": "aged",
        "once": "erewhile",
        "one": "a single",
        "only": "solely",
        "open": "unbar",
        "opinion": "reckoning",
        "opportunity": "hap",
        "order": "commandment",
        "other": "else",
        "outside": "without",
        "over": "o'er",
        "own": "possess",
        "pain": "anguish",
        "paper": "parchment",
        "part": "portion",
        "partner": "consort",
        "party": "gathering",
        "pass": "proceed",
        "past": "foregone",
        "path": "way",
        "patient": "enduring",
        "pay": "render",
        "peace": "truce",
        "people": "folk",
        "perfect": "flawless",
        "perhaps": "perchance",
        "person": "mortal",
        "picture": "likeness",
        "place": "locale",
        "plan": "scheme",
        "play": "sport",
        "please": "gladden",
        "pleasure": "delight",
        "poor": "humble",
        "power": "might",
        "pray": "entreat",
        "prepare": "make ready",
        "present": "gift",
        "pride": "vainglory",
        "prince": "royal son",
        "prison": "dungeon",
        "private": "secret",
        "problem": "plight",
        "promise": "vow",
        "proper": "fitting",
        "protect": "shield",
        "proud": "high-hearted",
        "public": "common",
        "punish": "chastise",
        "purpose": "intent",
        "push": "thrust",
        "put": "place",
        "queen": "sovereign lady",
        "question": "query",
        "quick": "fleet",
        "quiet": "still",
        "rain": "downpour",
        "raise": "hoist",
        "rare": "scarce",
        "reach": "attain",
        "read": "peruse",
        "ready": "readied",
        "real": "veritable",
        "reason": "cause",
        "receive": "take",
        "red": "crimson",
        "remember": "bethink",
        "reply": "respond",
        "rest": "repose",
        "return": "come back",
        "rich": "wealthy",
        "ride": "steed away",
        "right": "just",
        "ring": "band",
        "rise": "ascend",
        "road": "pathway",
        "rob": "plunder",
        "room": "chamber",
        "run": "flee",
        "sad": "melancholy",
        "safe": "secure",
        "say": "speak",
        "scare": "fright",
        "school": "academy",
        "sea": "brine",
        "search": "seek",
        "seat": "stool",
        "see": "behold",
        "seem": "appear",
        "self": "oneself",
        "sell": "vend",
        "send": "dispatch",
        "sense": "wit",
        "serious": "grave",
        "serve": "attend",
        "set": "place",
        "several": "diverse",
        "shake": "quiver",
        "share": "portion",
        "sharp": "keen",
        "shout": "cry out",
        "show": "display",
        "shut": "bar",
        "sick": "ill",
        "side": "flank",
        "sign": "token",
        "simple": "plain",
        "since": "sith",
        "sing": "chant",
        "sister": "kinswoman",
        "sit": "perch",
        "skill": "craft",
        "sky": "firmament",
        "sleep": "slumber",
        "slow": "sluggish",
        "small": "petty",
        "smile": "grin",
        "snow": "frost",
        "soft": "gentle",
        "soldier": "man-at-arms",
        "some": "a few",
        "son": "heir",
        "song": "ballad",
        "soon": "anon",
        "sorry": "woeful",
        "speak": "utter",
        "special": "rare",
        "speed": "haste",
        "spend": "expend",
        "spirit": "phantom",
        "stand": "abide",
        "start": "commence",
        "stay": "tarry",
        "step": "stride",
        "still": "yet",
        "stop": "cease",
        "story": "tale",
        "strange": "queer",
        "street": "lane",
        "strong": "stout",
        "student": "pupil",
        "study": "peruse",
        "stupid": "dull-witted",
        "subject": "topic",
        "success": "triumph",
        "such": "so",
        "sudden": "abrupt",
        "suffer": "endure",
        "suit": "garb",
        "summer": "midsummer",
        "sun": "orb",
        "supper": "evening feast",
        "support": "uphold",
        "sure": "certain",
        "surprise": "startlement",
        "sweet": "dulcet",
        "sword": "blade",
        "take": "seize",
        "talk": "parley",
        "tall": "lofty",
        "teach": "instruct",
        "tear": "rend",
        "tell": "relate",
        "ten": "a score less ten",
        "thank": "give thanks",
        "that": "yon",
        "the": "ye",
        "their": "their own",
        "them": "those",
        "then": "thence",
        "there": "thither",
        "these": "those",
        "they": "those folk",
        "thing": "matter",
        "think": "ponder",
        "this": "this here",
        "those": "yon folk",
        "though": "albeit",
        "thought": "notion",
        "thousand": "a thousandfold",
        "three": "thrice",
        "through": "thorough",
        "throw": "cast",
        "thus": "so",
        "time": "hour",
        "tired": "weary",
        "to": "unto",
        "today": "this day",
        "together": "all as one",
        "told": "hath said",
        "tomorrow": "the morrow",
        "tonight": "this night",
        "too": "likewise",
        "took": "did seize",
        "town": "hamlet",
        "travel": "journey",
        "tree": "timber",
        "true": "veritable",
        "trust": "faith",
        "try": "endeavour",
        "turn": "spin",
        "twelve": "a dozen",
        "twice": "twofold",
        "two": "twain",
        "ugly": "foul",
        "under": "beneath",
        "understand": "comprehend",
        "unhappy": "woeful",
        "unite": "join",
        "until": "till",
        "up": "aloft",
        "upon": "on",
        "use": "employ",
        "usual": "customary",
        "valley": "vale",
        "value": "worth",
        "very": "most",
        "village": "shire",
        "virtue": "merit",
        "voice": "utterance",
        "walk": "amble",
        "wall": "barrier",
        "want": "desire",
        "war": "battle",
        "warm": "heated",
        "wash": "cleanse",
        "watch": "keep vigil",
        "water": "aqua",
        "way": "path",
        "we": "we folk",
        "weak": "feeble",
        "wealth": "riches",
        "wear": "don",
        "weather": "clime",
        "week": "sennight",
        "weep": "lament",
        "well": "well met",
        "west": "occident",
        "wet": "damp",
        "what": "what ho",
        "when": "whenas",
        "where": "whither",
        "which": "whichsoever",
        "while": "whilst",
        "white": "pale",
        "who": "whoever",
        "whole": "entire",
        "why": "wherefore",
        "wife": "lady wife",
        "wild": "untamed",
        "will": "wilt",
        "win": "triumph",
        "wind": "gale",
        "window": "casement",
        "wine": "mead",
        "winter": "frost-tide",
        "wise": "sage",
        "wish": "desirest",
        "with": "withal",
        "woman": "wench",
        "wonder": "marvel",
        "wood": "copse",
        "word": "utterance",
        "work": "toil",
        "world": "mortal coil",
        "worry": "vex",
        "worse": "more foul",
        "worth": "value",
        "would": "wouldst",
        "write": "scribe",
        "wrong": "ill",
        "year": "yr",
        "yes": "aye",
        "yesterday": "ereyesterday",
        "yet": "still",
        "you": "thou",
        "young": "youthful",
        "your": "thy",
        "yourself": "thineself",
        "zest": "gusto"
    }

    function walkAndReplace(rootNode) {
        const walker = document.createTreeWalker(rootNode, NodeFilter.SHOW_TEXT, null, false);
        let node;
        while (node = walker.nextNode()) {
            if (node.parentNode && !/^(SCRIPT|STYLE|TEXTAREA|INPUT)$/i.test(node.parentNode.nodeName)) {
                node.nodeValue = replaceText(node.nodeValue);
            }
        }
    }

    function replaceText(text) {
        for (let [key, value] of Object.entries(phraseDict)) {
            const regex = new RegExp(`\\b${key}\\b`, 'gi');
            text = text.replace(regex, (match) => matchCase(match, value));
        }
        for (let [key, value] of Object.entries(wordDict)) {
            const regex = new RegExp(`\\b${key}\\b`, 'gi');
            text = text.replace(regex, (match) => matchCase(match, value));
        }
        return text;
    }

    function matchCase(source, target) {
        if (source === source.toUpperCase()) return target.toUpperCase();
        if (source[0] === source[0].toUpperCase()) return target[0].toUpperCase() + target.slice(1);
        return target;
    }

    function escapeRegExp(string) {
        return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
    }   

    function observeAndReplace() {
        const observer = new MutationObserver(mutations => {
            for (const mutation of mutations) {
                for (const node of mutation.addedNodes) {
                    if (node.nodeType === 1) {
                        walkAndReplace(node);
                    } else if (node.nodeType === 3) {
                        node.nodeValue = replaceText(node.nodeValue);
                    }
                }
            }
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });

        // initial run
        walkAndReplace(document.body);
    }

    // waiting for DOM to load fully to over-ride text on dynamic websites
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', observeAndReplace);
    } else {
        observeAndReplace();
    }
})();