They're just that random.
Created
July 27, 2023 21:35
-
-
Save rhilo/1c9220a5483017a84b259b0bce8a70e0 to your computer and use it in GitHub Desktop.
Linux Distro Name Generator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <div class="wrapper"> | |
| <div class="output"> | |
| <span class="output"></span> | |
| <button onclick="generate()">Generate</button> | |
| </div> | |
| </div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| console.clear(); | |
| var pattern = Trianglify({ | |
| height: 2400, | |
| width: 2400, | |
| cell_size: 160}); | |
| document.body.appendChild(pattern.canvas()); | |
| var name = "", | |
| chars = "abcdefghijklmnopqrstuvwxyz", | |
| vowels = "aeiou".split(""), | |
| consonants = "bcdfghjklmnpqrstvwxyz".split(""), | |
| char, index, found; | |
| function isVowel(char){ | |
| return vowels.indexOf(char) !== -1; | |
| } | |
| function isConsonant(char){ | |
| return consonants.indexOf(char) !== -1; | |
| } | |
| function type(char){ | |
| if(char === undefined)return null; | |
| if(isVowel(char))return "vowel"; | |
| if(isConsonant(char))return "consonant"; | |
| } | |
| function select(string){ | |
| return string[Math.floor(Math.random()*string.length)]; | |
| } | |
| function valid(char, name){ | |
| var prev = name[name.length-1]; | |
| if(name.length > 0){ | |
| prev = prev.toLowerCase(); | |
| if(prev === "a"){ | |
| return select(consonants); | |
| } else if(prev === "b"){ | |
| return select(vowels); | |
| } else if(prev === "c"){ | |
| return select(vowels.concat(["hkrl"])); | |
| } else if(prev === "d"){ | |
| return select(vowels); | |
| } else if(prev === "e"){ | |
| return select(consonants.concat("aiou".split(""))); | |
| } else if(prev === "f"){ | |
| return select(vowels.concat("lr".split(""))); | |
| } else if(prev === "g"){ | |
| return select(vowels.concat("lhnr".split(""))); | |
| } else if(prev === "h"){ | |
| return select(vowels); | |
| } else if(prev === "i"){ | |
| return select("abcdfklmnoprstvxz"); | |
| } else if(prev === "j"){ | |
| return select(vowels); | |
| } else if(prev === "k"){ | |
| return select("aeiloruwy"); | |
| } else if(prev === "l"){ | |
| return select("aeikmnopstuy"); | |
| } else if(prev === "m"){ | |
| return select("abeiopuy"); | |
| } else if(prev === "n"){ | |
| return select("acegikoqsuvxy"); | |
| } else if(prev === "o"){ | |
| return select("acdeghilmnprstuwxyz"); | |
| } else if(prev === "p"){ | |
| return select("aehilorsuy"); | |
| } else if(prev === "q"){ | |
| return "u"; | |
| } else if(prev === "r"){ | |
| return select("adegilmnotuvxyz"); | |
| } else if(prev === "s"){ | |
| return select("acehiklmnopqtuw"); | |
| } else if(prev === "t"){ | |
| return select("aehioruwy"); | |
| } else if(prev === "u"){ | |
| return select("aeio"); | |
| } else if(prev === "v"){ | |
| return select("aeiory"); | |
| } else if(prev === "w"){ | |
| return select("aehio"); | |
| } else if(prev === "x"){ | |
| return select("aei"); | |
| } else if(prev === "y"){ | |
| return select("aeo"); | |
| } else if(prev === "z"){ | |
| return select(vowels); | |
| } | |
| return char; | |
| } else { | |
| return char; | |
| } | |
| return ""; | |
| } | |
| function generate(){ | |
| name = ""; | |
| found = ""; | |
| while(name.length < Math.floor(Math.random()*5)+4){ | |
| prev = name[name.length-1]; | |
| do { | |
| if(name.length === 0) | |
| char = select("abcdfghijklmnopqrstvwxyz"); | |
| else | |
| char = select(chars); | |
| } while((found = valid(char, name)) === ""); | |
| char = found; | |
| if(name.length === 0)char = char.toUpperCase(); | |
| name += char; | |
| } | |
| name += " "+(Math.floor(Math.random()*10)+Math.floor(Math.random()*10)); | |
| name += "."; | |
| name += Math.floor(Math.random()*10).toString()+Math.floor(Math.random()*10); | |
| document.querySelector("span.output").innerText = name; | |
| } | |
| generate(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <script src="https://cdnjs.cloudflare.com/ajax/libs/trianglify/0.2.1/trianglify.min.js"></script> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @import url(https://fonts.googleapis.com/css?family=Open+Sans); | |
| canvas { | |
| width: 100vw; | |
| height: 100vh; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| z-index: 0; | |
| } | |
| .wrapper { | |
| background: rgba(0, 0, 0, .5); | |
| position: absolute; | |
| left: 50%; | |
| top: 50%; | |
| transform: translate(-50%, -50%); | |
| z-index: 1; | |
| text-align: center; | |
| padding: 16px; | |
| width: 240px; | |
| height: 160px | |
| } | |
| div.output { | |
| position: absolute; | |
| left: 50%; | |
| top: 50%; | |
| transform: translate(-50%, -50%); | |
| } | |
| span { | |
| white-space: nowrap; | |
| font: 2em "Open Sans", Verdana, sans-serif; | |
| font-weight: 300; | |
| display: block; | |
| color: #fff; | |
| margin: 8px | |
| } | |
| button { | |
| cursor: pointer; | |
| font: 1em "Open Sans", Verdana, sans-serif; | |
| border: 0; | |
| outline: 0; | |
| margin: 0; | |
| padding: 0; | |
| width: 160px; | |
| height: 48px; | |
| background: #3c6; | |
| color: #fff; | |
| border: thin solid #fff; | |
| outline: thin solid #3c6; | |
| transition: .25s ease-in-out; | |
| text-transform: uppercase; | |
| } | |
| button:hover { | |
| color: #3c6; | |
| background: #fff; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment