Generates (pseudo)random lorem ipsum text consisting of a given number of text paragraphs.
Details
Lorem ipsum is a dummy text often used as a source of data for string processing and displaying/lay-outing exercises.
The current implementation is very simple: words are selected randomly from a Zipf distribution (based on a set of ca. 190 predefined Latin words). The number of words per sentence and sentences per paragraph follows a discretized, truncated normal distribution. No Markov chain modeling, just i.i.d. word selection.
See also
The official online manual of stringi at https://stringi.gagolewski.com/
Gagolewski M., stringi: Fast and portable character string processing in R, Journal of Statistical Software 103(2), 2022, 1-59, doi:10.18637/jss.v103.i02
Other random:
stri_rand_shuffle(),
stri_rand_strings()
Author
Marek Gagolewski and other contributors
Examples
cat(sapply(
stri_wrap(stri_rand_lipsum(10), 80, simplify=FALSE),
stri_flatten, collapse='\n'), sep='\n\n')
#> Lorem ipsum dolor sit amet, aliquam ac et ultricies ante in curae lobortis.
#> Non pharetra eu natoque in nec netus penatibus? Aenean hendrerit sociis sed
#> mi malesuada hac tincidunt vivamus pharetra? Fringilla arcu semper vivamus!
#> Turpis sed at primis nulla dignissim nascetur sed lectus mauris malesuada porta
#> fringilla ante per, sagittis. Porta sed donec dictum himenaeos vel diam. Nisl
#> velit mauris sed nibh tortor sagittis eu ante. Quis neque sed ut hac senectus
#> eu ac nibh, diam pretium. Sem et primis imperdiet tempor urna. Quis iaculis
#> parturient nullam suscipit ut hendrerit venenatis fermentum nibh tortor. Diam et
#> arcu, est faucibus tristique nec.
#>
#> Vestibulum per tellus, elementum quis. Aliquam donec finibus sed in quis
#> volutpat vestibulum et, finibus rhoncus. Erat, in dictum urna nulla quis tempus
#> vel. Malesuada dictum nunc fusce integer in ante sit nostra. Class sit bibendum.
#> Sed hendrerit velit ut. Tristique inceptos proin tempor interdum diam hendrerit
#> lacinia velit. Faucibus, vitae, vel ut pellentesque habitasse ac nam mauris eu
#> sociosqu fames. Vel quis nisi purus, tincidunt et nunc ullamcorper taciti. Sed
#> suspendisse morbi ut at neque quis magna mi sit ut, sed.
#>
#> Porta penatibus libero nec in, lorem porttitor blandit laoreet tortor. Neque
#> sed mus lacus facilisi tempus egestas tempor ut penatibus. Tristique cubilia
#> libero finibus, felis mollis, maecenas ante! Egestas sagittis lacus, amet
#> parturient iaculis, sed auctor venenatis. Malesuada, aenean semper nulla, amet,
#> ac tellus integer. Nostra, accumsan ligula sed enim fermentum leo faucibus nec
#> in eleifend arcu, cum sagittis? In finibus ut eu mattis suspendisse scelerisque
#> ligula facilisi, leo egestas, ullamcorper. Non dapibus praesent vehicula etiam
#> vitae varius potenti turpis finibus. Scelerisque morbi sociis ac penatibus,
#> tristique in, diam vestibulum, maximus. Ac auctor iaculis maximus sed consequat.
#> Ullamcorper lacus arcu accumsan dignissim scelerisque erat enim non est varius.
#> Ut laoreet faucibus ex eu taciti ullamcorper urna.
#>
#> Mauris cubilia ac ut condimentum ultrices, quis inceptos non. Maecenas vel
#> laoreet cras morbi curabitur sed. Suscipit hendrerit interdum, enim litora
#> nisi mi potenti pulvinar. Eu pharetra eu dui, tempus vitae curabitur cum eros
#> arcu, facilisi. Ligula lacus mauris ut sapien eu feugiat montes, lacinia quam
#> pharetra. Ipsum auctor lacus sollicitudin, pretium eu nulla imperdiet. Purus
#> accumsan elit ut mus vitae sociosqu tempor habitant. Mi ligula risus parturient
#> vestibulum id praesent vel mattis, nibh eget vivamus eu. Posuere egestas natoque
#> ac lorem tortor vehicula. Sed in posuere vel ut, bibendum ut enim ridiculus
#> odio quisque. Vitae auctor amet purus nec ac, nibh cum fusce quis ultrices ac.
#> Aliquam porttitor est aenean sollicitudin et elementum! Placerat nibh porttitor
#> lorem nec arcu non. Tristique nec dui ut, tempor in. Rutrum id eget, erat
#> elementum. Dis turpis auctor rutrum non parturient. Ut vitae maecenas. Tempor
#> eget, adipiscing ultrices et elementum. Fusce taciti magna augue ligula eget.
#>
#> Mus egestas vel fermentum nec mauris. Sagittis turpis ut sed ac sed sodales
#> nostra, facilisi. Eros nunc sem, in, sed augue vitae eget, lectus eget auctor.
#> Tincidunt sociosqu class et feugiat odio efficitur. Elit in enim viverra? Odio,
#> tellus dignissim consectetur habitant enim id rhoncus, nisi. Nec erat, sed
#> magna, ornare posuere vitae. Facilisis sed mi urna enim mattis nostra phasellus
#> et vel. Risus iaculis pharetra fusce vestibulum mauris, commodo tincidunt
#> dolor ac commodo, tincidunt cursus tempus. Cum in tristique ut, enim, finibus,
#> vestibulum ac ut. Egestas orci accumsan.
#>
#> Commodo, sapien et et condimentum non velit habitant feugiat. Ex donec nascetur,
#> ac tristique cubilia amet eu in tempus quam. Fames sed integer tempor nec
#> egestas ullamcorper fringilla porta leo nec sagittis etiam, erat. Sed magnis
#> pretium mauris ipsum amet nibh velit aptent. Nulla, eu lacus ac dignissim libero
#> feugiat consectetur quis phasellus at commodo. Vel, pretium sed habitant ut sed
#> tincidunt pretium nulla. Nec mi, viverra eleifend condimentum, et laoreet erat.
#> Vestibulum laoreet quam rhoncus sed viverra pellentesque torquent. Pharetra eget
#> risus imperdiet sed rhoncus nunc penatibus sit sed. Nisi tortor ex velit amet
#> ipsum nisi. Ut metus pellentesque lacinia velit vulputate. Eu, ante maecenas
#> habitasse nibh donec himenaeos conubia vitae. Leo vulputate fermentum nisi,
#> diam.
#>
#> Varius vitae ac vestibulum dolor odio quisque tempus facilisis at vehicula. Eros
#> fringilla etiam ac orci, hac integer mi. Ipsum donec vitae justo. Arcu sit ipsum
#> cursus vulputate. Urna nascetur et sodales, cras malesuada a inceptos justo. Sit
#> elit habitasse aenean metus. Aenean sapien eget hac tortor nam sed. Vestibulum
#> amet eros mauris ut eget ullamcorper sodales cursus pellentesque hendrerit.
#> Lobortis dignissim dapibus, non, ornare auctor scelerisque justo. Nunc pulvinar
#> tellus potenti semper erat natoque neque. Quam ac himenaeos non quis non.
#>
#> Leo ac, eget volutpat ipsum scelerisque porta tempus scelerisque torquent vitae
#> nulla mauris ac. Amet metus natoque sollicitudin ex ipsum interdum rhoncus at
#> massa. Pharetra et sapien magnis dis, est quis, sed consectetur magnis purus.
#> Tempor in nostra, nostra lobortis, sed ultrices non vel vitae nullam vitae.
#> Ut, imperdiet tincidunt ante viverra. Vel pellentesque ut sit at morbi quis
#> primis posuere convallis. Luctus purus natoque. Nec sit nisi dolor erat aliquam,
#> vehicula vestibulum, nisi lorem netus sed ligula. Felis urna ex ligula nostra
#> risus mollis ultricies dignissim. Conubia est id, pellentesque litora habitant
#> phasellus sapien.
#>
#> Odio risus odio id facilisis. A justo lacus aenean id rhoncus. Orci sed
#> rhoncus, in sed feugiat volutpat eleifend sodales lorem nullam. Sed sociis
#> mauris pellentesque scelerisque eu et amet luctus dapibus? Congue at posuere
#> volutpat, lobortis ac vel sed. Senectus ut eu donec sem amet in. Lacus ante,
#> conubia sed vel accumsan vulputate tristique ut interdum. Dignissim scelerisque
#> ut proin bibendum iaculis facilisis ac vel tincidunt. Eu cras. Sem diam congue
#> tincidunt tincidunt turpis venenatis nunc enim magna eu. Eleifend amet, nostra
#> nisi tincidunt mattis ad. Eu felis eu auctor ut id tincidunt non ultricies. Amet
#> aliquet, diam. Enim orci porta, fames mauris id.
#>
#> Viverra in tempor vitae tellus. Penatibus a molestie ac ultricies ultrices
#> ullamcorper mauris morbi. Mi, id ex quis nisl luctus pharetra. Dolor ornare
#> nascetur nunc scelerisque eu, in imperdiet non pulvinar. Amet ac netus, cras
#> odio accumsan, et aliquet. A est nec amet vel. Egestas sit suspendisse ultrices
#> nullam sed habitasse auctor sed at nullam quam. Egestas commodo quis integer
#> dolor pharetra nullam pellentesque quis pellentesque fusce. Nam, eros sed in
#> elit ut sed sed sapien mauris. Augue est commodo sagittis ante cubilia, magnis
#> dictumst purus non primis.
cat(stri_rand_lipsum(10), sep='\n\n')
#> Lorem ipsum dolor sit amet, sed erat non ut integer. Dolor vivamus nullam facilisis varius. Lectus in magna feugiat arcu nec maecenas convallis. Faucibus in id vivamus. Lectus lacus ex penatibus ornare eu. Dignissim velit vel sit bibendum lectus lacinia. A sed efficitur dictumst justo, tortor dui malesuada maecenas. Faucibus sem consectetur fringilla praesent malesuada, ornare? Auctor libero vel inceptos. Litora nisl justo pellentesque lobortis malesuada eu platea, sed, vel id.
#>
#> Mauris, diam tellus cras posuere tellus, lacinia tincidunt. At habitant vestibulum nulla imperdiet magnis in? Nec elit sollicitudin class praesent cum nunc urna duis vitae. Accumsan sit, torquent ante mattis, in vestibulum. Integer ad, curae consectetur mus et. Tempus porttitor pretium etiam ad euismod nisl at elit turpis tortor. Dapibus facilisi orci pretium et dui dignissim. Cursus volutpat metus eleifend montes vestibulum, vulputate inceptos nunc et lorem sodales! Mauris placerat et nibh nam quam nunc, in ullamcorper. Amet, viverra posuere tempor, elit vel. Sagittis per suscipit maecenas.
#>
#> Nullam mauris eget turpis aenean. Sed vestibulum amet enim potenti mauris pharetra nunc in dis tortor ultricies. Sed elementum ex turpis dis cursus adipiscing etiam tellus dolor mauris pretium. Eu dignissim cras, velit mattis. Ante in nisl blandit at sed lorem tempus diam. Interdum finibus nulla faucibus dolor ad condimentum. Eu mi vel mauris ut nulla nisl et metus. Aliquam neque platea sed. Scelerisque dui sed lorem dolor consectetur interdum donec. Leo sodales ultrices nulla urna enim inceptos sed rutrum in aptent, eu. Auctor, primis ac quis. Condimentum, senectus bibendum ut sollicitudin at donec pellentesque! Eget ultrices placerat proin justo, nulla egestas cum odio tellus.
#>
#> Hendrerit pellentesque auctor at lacus elementum. Arcu quam, ac luctus duis, aliquam dignissim eros ex posuere. Aenean in amet pharetra luctus egestas libero. Est amet ultrices ridiculus nulla elementum justo ipsum. Velit elementum, urna. Sagittis maecenas habitasse aenean quisque arcu nisi. In est non mi adipiscing nec odio risus semper turpis. Lacinia, eget aenean pulvinar feugiat in mattis elementum ex vestibulum. Metus cras suscipit nec nisl lacus at commodo neque? Hac ac natoque, maecenas ac id risus quisque eu risus suscipit. Ac fermentum lacus eget vitae tortor in, non commodo. Vehicula aptent et in eu, et, volutpat primis non fames. Eu magna et quis egestas ullamcorper et conubia ac dolor.
#>
#> Justo imperdiet pellentesque mus. Aliquam sapien placerat ipsum potenti nullam, scelerisque et. Ipsum quisque efficitur commodo ex sociosqu tellus, hendrerit dis volutpat vel nisl sed. Inceptos nibh vitae sed parturient est. Natoque velit ut auctor ante elit non augue, nunc cras. Nisl in habitant ac malesuada. Et augue, pellentesque nec non ut consectetur sociosqu habitasse donec nec a arcu. Vitae elit taciti, tempus ultricies. Malesuada ad ultricies, luctus parturient turpis. Nec, purus enim leo adipiscing mus sodales. Quam, fusce, faucibus ad ullamcorper purus, tristique erat felis fames. Fusce, suspendisse tempor ut dui, ultricies vel.
#>
#> Suspendisse, metus tortor nisl curabitur hendrerit, velit. Arcu iaculis orci ad urna habitant iaculis. Nunc mi duis leo mauris blandit eu amet accumsan. Habitant efficitur at duis aptent lacinia, posuere lacus faucibus ut. Mattis turpis sed purus amet aliquet aliquam nulla, sed nisl. Interdum, nisl magna volutpat sed diam tempor per vulputate nisl. Tellus diam nulla aliquet turpis mauris litora blandit blandit. In ut at ante quis tincidunt nisl suscipit non. Risus, faucibus convallis congue torquent curae nibh, nunc feugiat. Diam in at fermentum arcu pellentesque etiam turpis elementum.
#>
#> Aliquam interdum, curae nisi torquent pellentesque egestas. Varius mattis tempor magna maecenas, adipiscing ut sed. Potenti odio ut mauris nunc eu elementum hendrerit. Quam vehicula posuere etiam diam sodales dui elit id at. Velit mi rhoncus augue, erat. Ligula amet turpis sed potenti ac. Posuere vel nullam, finibus montes pellentesque sed eu justo. Elit dictum, sed at nec. In magna sollicitudin sed habitant viverra. Ac lacus porta leo torquent, et ipsum, et. Lobortis non ac in. Eleifend tincidunt, magnis volutpat sem dui.
#>
#> Ipsum volutpat pulvinar diam nulla convallis. Urna nullam tortor ligula ultricies, sed, hac, et pharetra. Consequat pellentesque, in mollis diam sollicitudin in penatibus porttitor est id. Mauris eu pellentesque dictum, mi, neque lectus eu. Nec convallis et ultrices dolor pellentesque. Fringilla amet potenti tristique id. Integer, quisque faucibus amet viverra nec eget sem urna. Phasellus dictumst sapien arcu tempus diam morbi efficitur. Auctor inceptos pretium, sagittis lacinia metus non consectetur, mi nulla in, egestas. Platea, ut convallis eu. Duis potenti interdum velit mauris cursus sed adipiscing odio. Blandit vestibulum donec ultrices sed lacus. Est diam nisi facilisi, egestas class cum hendrerit porttitor mauris, in ipsum. Ac eros ut malesuada tempus sem turpis nisi nibh leo volutpat.
#>
#> Orci nascetur ipsum accumsan quam fringilla sodales et. Gravida amet donec lorem tempor, eu. Metus ut imperdiet in efficitur ac sed. Non at mauris tincidunt nulla quis, iaculis, nisl augue. Velit enim lectus ad vivamus. Ut neque nascetur lectus sed, pellentesque sagittis dictumst interdum. In ligula quisque malesuada himenaeos ut ridiculus. Cursus eget id, non velit dis. Fusce imperdiet lacus sociosqu nulla sed nulla. Sit faucibus at ex sit. Purus nisl phasellus sit erat pharetra vulputate ornare sociis. Placerat nulla elit nullam fusce maximus odio sed, nam. Ultrices lacus himenaeos cursus.
#>
#> Cursus augue, quis amet magna non libero. Sed, bibendum non sit, eu, inceptos tristique interdum potenti aliquam in. Aenean est odio nec erat. Vivamus nam dictumst vitae, in magna. Lectus ut commodo nostra class sodales augue nullam, justo elementum ipsum. Euismod sed quis nostra. Nulla, fermentum molestie. Quis, leo mi quis ipsum facilisi.