Skip to content

Instantly share code, notes, and snippets.

@lewdev
Last active July 22, 2022 22:44
Show Gist options
  • Save lewdev/922b9dee5a1ac5854203b885119bf810 to your computer and use it in GitHub Desktop.
Save lewdev/922b9dee5a1ac5854203b885119bf810 to your computer and use it in GitHub Desktop.
Generate random Lorem Ipsum paragraphs.
<h1 style="margin:0">Ipsum Generator</h1>
<span id=b></span>
<button onclick="navigator.clipboard.writeText(o.value);">📋 Copy</button>
<textarea id=o style="display:block;width:100%;height:calc(100vh - 6rem)"></textarea>
<script>
const IPSUM = "suspendisse luctus nunc libero et varius tortor gravida sit amet aliquam nec turpis eget nibh ornare maecenas pulvinar velit neque sodales eu etiam posuere ac nisl ultrices pellentesque pretium purus diam quis finibus dui pharetra non consectetur sapien vestibulum arcu interdum phasellus vitae fringilla risus praesent elementum ut mattis proin est faucibus condimentum vel vestibulum justo molestie erat iaculis dapibus sem urna placerat blandit augue duis at quam odio sed mollis ligula in tempus id magna vehicula bibendum cursus tincidunt leo facilisis ut sollicitudin nulla consequat elit enim a efficitur mi aliquet scelerisque tempor donec dolor ipsum sed feugiat nunc viverra semper cras tellus venenatis convallis ante integer massa egestas interdum malesuada fames primis facilisi tristique vulputate auctor nisi euismod eros fusce lorem sagittis dignissim aenean imperdiet lacus accumsan rhoncus in laoreet suscipit lacinia volutpat vivamus quisque ultricies dictum congue nulla nullam orci metus felis ex mauris maximus commodo fermentum curabitur hendrerit lobortis porttitor pellentesque eleifend aliquam rutrum morbi lectus hac habitasse platea dictumst mauris nam ullamcorper porta orci natoque penatibus magnis dis parturient montes nascetur ridiculus mus habitant morbi senectus netus cubilia curae lorem adipiscing potenti class aptent taciti sociosqu ad litora torquent per conubia nostra inceptos himenaeos".split(" ");
const arr = size => new Array(size).fill();
const rand = (max, min = 0) => (
Math.floor(Math.random() * (max - min)) + min
);
const cap = s => s.charAt(0).toUpperCase() + s.substr(1);
const getPunc = () => [".", "!", "?"][rand(3)];
var getWord = () => IPSUM[rand(IPSUM.length)];
var getSentence = () => (
arr(rand(12, 8)).map((_, i) => (
!i ? cap(getWord()) : getWord()
)).join(" ") + getPunc()
);
var getParagraph = () => (
arr(rand(6, 4)).map(() => getSentence()).join(" ")
);
var getEssay = () => (
arr(rand(6, 4)).map(() => getParagraph()).join("\n\n")
);
const gen = val => o.value = window["get" + val]();
b.innerHTML = "Essay,Paragraph,Sentence,Word".split(",").map(v => `<button onclick="gen('${v}')">${v}</button> `).join("");
gen('Essay');
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment