{"id":19323028,"url":"https://github.com/geikha/text-hacker","last_synced_at":"2025-04-22T19:32:05.389Z","repository":{"id":54685847,"uuid":"335818204","full_name":"geikha/text-hacker","owner":"geikha","description":"tool and website for 'hacked' looking text","archived":false,"fork":false,"pushed_at":"2024-06-14T19:44:03.000Z","size":63,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T03:09:09.471Z","etag":null,"topics":["javascript","leetcode","leetcode-javascript","text-processing","text-tools","vanilla-javascript","website"],"latest_commit_sha":null,"homepage":"https://text-hacker.glitch.me/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geikha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-04T02:42:54.000Z","updated_at":"2024-06-14T19:44:06.000Z","dependencies_parsed_at":"2022-08-14T00:00:42.687Z","dependency_job_id":null,"html_url":"https://github.com/geikha/text-hacker","commit_stats":null,"previous_names":["geikha/text-hacker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geikha%2Ftext-hacker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geikha%2Ftext-hacker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geikha%2Ftext-hacker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geikha%2Ftext-hacker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geikha","download_url":"https://codeload.github.com/geikha/text-hacker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250308499,"owners_count":21409280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","leetcode","leetcode-javascript","text-processing","text-tools","vanilla-javascript","website"],"created_at":"2024-11-10T01:44:53.131Z","updated_at":"2025-04-22T19:32:05.012Z","avatar_url":"https://github.com/geikha.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# text-hacker\nTool and [website](https://text-hacker.glitch.me/) for 'hacked' looking text (UTF-8) made in vanilla javascript\n\n## how it works\nThe script takes a given text and replaces (or doesn't) each character with a random one from the available sets. If the char isn't available, then it'll not be replaced. \n### sets\n| set name      | description                 | target        | example     |\n| ------------- |-----------------------------|:-------------:| ----------- |\n| weirdLetters  | variations of the letter, and similar looking ones | letters       | a : ǣǺǻǼǽȀȁȂȃȦȧȺɑʼΆΑάαӐ... |\n| relatedSymbols| related derivative symbols that are not used in language | letters       | a : Å@@₳    |\n| singleCharLeet| l33t code variations of the letter that only occupy one char | letters       | i : 1!¡':¦] |\n| multiCharLeet | l33t code variations of the letter that occupy more than one char | letters       | d : [),[\u003e,[},\\|),\\|},]) |\n| turnedLetters | upside down versions of the letters | letters       | e : Ǝǝ      |\n| japaneseVowels| corresponding japanese hiragana or katakana for each vowel | vowels        | a : ぁあァア  |\n| arabicAlikes  | similar looking abjad letters  | some letters  | j : ݫݬﮊﮋﮌﮍ  |\n| weirdNumbers  | related unicode symbols or representations of the number | digits        | 4 : ₄④⑷⒋⓮⓸⛶✤✦ |\n| variationsOfPunctuations | some chars that could replace the punctuation character | other chars | , : ;ʻʽ̦̒̓̔̕՝،߸፣᠂᠈⍪❛❜❝❞❟❠︐︑﹐﹑，､ |\n| nothing | returns the exact same character | all chars  | a : a\n### weights\nThere's an array for each type of character that lists the usable sets for the given char, as well as a weight indicating how often that set will be used.  \nThere arrays are `letterWeight`,`vowelWeight`,`numberWeight`, and `elseWeight`.\n#### example\n```js\nconst vowelWeight = [\n  [nothing,70],\n  [weirdLetters,7],\n  [relatedSymbols,3],\n  [singleCharLeet,5],\n  [multiCharLeet,1],\n  [arabicAlikes,1],\n  [japaneseVowels,2]\n]\n```\n## how to hack text inside your own website\nTake everything from [script.js](https://github.com/geikha/text-hacker/blob/main/script.js) except the last two blocks of code. Then you can do something like:\n```js\ndocument.addEventListener(\n  \"DOMContentLoaded\",\n  function() {\n    const id = \"hacktext\"; // id of the HTML div\n    const text = document.getElementById(id).firstChild.nodeValue;\n    const rate = 200; // how many ms until next alteration\n    let arr = Array.from(text);\n    setInterval(function() {\n      setText(\"hacktext\", hackString(text, arr));\n    }, rate);\n  },\n  false\n);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeikha%2Ftext-hacker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeikha%2Ftext-hacker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeikha%2Ftext-hacker/lists"}