Skip to content

Instantly share code, notes, and snippets.

@searls
Created July 16, 2024 14:52
Show Gist options
  • Save searls/2859ad7e8941872edb9561eb965b7c76 to your computer and use it in GitHub Desktop.
Save searls/2859ad7e8941872edb9561eb965b7c76 to your computer and use it in GitHub Desktop.
I was disappointed with the faker gem's Markdown and Lorem modules, so I wrote a custom thing that produced realistic-length paragraphs with just enough markdown junk sprinkled in to know that it's rendering correctly in my app
require "faker"
def lorem_paragraphs
rand(2..4).times.map {
rand(4..6).times.map {
Faker::Lorem.sentence(word_count: rand(10..40))
}.join(" ")
}.join("\n\n")
end
def markdown_paragraphs
lorem_paragraphs.split("\n\n").map { |sentence|
sentence.split(" ").map { |word|
if rand(100) < 5
"**#{word}**"
elsif rand(100) < 5
"_#{word}_"
elsif rand(100) < 5
"[#{word}](http://example.com/#{word})"
else
word
end
}.join(" ")
}.join("\n\n")
end

Example output:

_Facilis_ voluptatem harum ea itaque officiis temporibus quis est nihil iste nostrum illum. **Veniam** sit dolorem **est** _aut_ pariatur facilis quisquam explicabo sit nemo. Autem quaerat voluptate saepe _animi_ _ut_ aut iure quis quam. Velit _quia_ mollitia modi et _autem_ qui _ut_ architecto quae assumenda aut eum nihil. Eaque _ex_ ut harum corrupti officia _omnis_ rem velit illum magnam eos recusandae nisi iste odit aut.

Sed tempore _hic_ _id_ repellat fugiat _quasi_ unde minus sunt **est** eius laborum dolores eveniet _error_ at vitae excepturi vel et autem impedit aut animi voluptatem maxime tempora. Et sunt **sapiente** vel nobis officiis [ullam](http://example.com/ullam) enim _nihil_ _saepe_ molestiae quo minima repudiandae quis unde iusto soluta et [et](http://example.com/et) beatae consequatur. Ea aut numquam cum _provident_ in dolor fuga sed nam soluta quae nemo perspiciatis velit cumque explicabo nulla et ratione qui _et_ corporis autem **enim** quibusdam aut autem fugit eum ut **quia** **earum** _maxime._ _Id_ sit qui ex tempore et rerum et _eos_ neque aut autem suscipit sint exercitationem ab rerum [est](http://example.com/est) ipsum accusamus ut et.

Fugiat _aut_ similique et praesentium quam saepe aut ullam ipsa veniam. Quaerat tenetur voluptas dolor omnis _reprehenderit_ eos repudiandae vel est ab _ut_ aperiam magnam in sed [nihil](http://example.com/nihil) est [dolorem.](http://example.com/dolorem.) Occaecati reprehenderit quo [ut](http://example.com/ut) perspiciatis [et](http://example.com/et) iusto cumque consequatur soluta sint quidem veniam sed ex distinctio laborum voluptatem. Est quia [est](http://example.com/est) _voluptatem_ fuga sunt **deserunt** molestias nisi [totam](http://example.com/totam) assumenda at corporis provident.

[Nesciunt](http://example.com/Nesciunt) **nemo** et et quo eos nam ipsum eius quos sit deserunt amet [aut](http://example.com/aut) eligendi voluptas et reprehenderit. Sit [et](http://example.com/et) et **earum** non illo ut rerum sequi quia autem repellat _asperiores_ rerum [nihil](http://example.com/nihil) [corporis](http://example.com/corporis) neque omnis dicta. Beatae [animi](http://example.com/animi) eveniet _ipsam_ laborum quo molestias quibusdam ipsum facere architecto aut unde cumque qui accusamus harum _enim_ ut eum in _amet_ vitae. Eveniet impedit nihil voluptates dolor sit et beatae **id** perspiciatis deserunt quis mollitia et voluptas rem optio eligendi iusto esse omnis sint quaerat est. In harum et sunt quis [est](http://example.com/est) illo eos cum _provident_ quia omnis inventore minus et eveniet consectetur consequatur [ut](http://example.com/ut) assumenda nulla sed quia dolores maiores quod.

Rendered:

Facilis voluptatem harum ea itaque officiis temporibus quis est nihil iste nostrum illum. Veniam sit dolorem est aut pariatur facilis quisquam explicabo sit nemo. Autem quaerat voluptate saepe animi ut aut iure quis quam. Velit quia mollitia modi et autem qui ut architecto quae assumenda aut eum nihil. Eaque ex ut harum corrupti officia omnis rem velit illum magnam eos recusandae nisi iste odit aut.

Sed tempore hic id repellat fugiat quasi unde minus sunt est eius laborum dolores eveniet error at vitae excepturi vel et autem impedit aut animi voluptatem maxime tempora. Et sunt sapiente vel nobis officiis ullam enim nihil saepe molestiae quo minima repudiandae quis unde iusto soluta et et beatae consequatur. Ea aut numquam cum provident in dolor fuga sed nam soluta quae nemo perspiciatis velit cumque explicabo nulla et ratione qui et corporis autem enim quibusdam aut autem fugit eum ut quia earum maxime. Id sit qui ex tempore et rerum et eos neque aut autem suscipit sint exercitationem ab rerum est ipsum accusamus ut et.

Fugiat aut similique et praesentium quam saepe aut ullam ipsa veniam. Quaerat tenetur voluptas dolor omnis reprehenderit eos repudiandae vel est ab ut aperiam magnam in sed nihil est dolorem. Occaecati reprehenderit quo ut perspiciatis et iusto cumque consequatur soluta sint quidem veniam sed ex distinctio laborum voluptatem. Est quia est voluptatem fuga sunt deserunt molestias nisi totam assumenda at corporis provident.

Nesciunt nemo et et quo eos nam ipsum eius quos sit deserunt amet aut eligendi voluptas et reprehenderit. Sit et et earum non illo ut rerum sequi quia autem repellat asperiores rerum nihil corporis neque omnis dicta. Beatae animi eveniet ipsam laborum quo molestias quibusdam ipsum facere architecto aut unde cumque qui accusamus harum enim ut eum in amet vitae. Eveniet impedit nihil voluptates dolor sit et beatae id perspiciatis deserunt quis mollitia et voluptas rem optio eligendi iusto esse omnis sint quaerat est. In harum et sunt quis est illo eos cum provident quia omnis inventore minus et eveniet consectetur consequatur ut assumenda nulla sed quia dolores maiores quod.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment