Last active
June 11, 2021 09:16
-
-
Save oddvalue/5b2b146a07f1a36505548264a9582690 to your computer and use it in GitHub Desktop.
Nunjucks lorem ipsum macro 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
{# | |
Lorem ipsum generator | |
Usage: | |
{{ import 'lipsum.njk' as lipsum }} | |
{{ lipsum.sentence() }} | |
#} | |
{# | |
Generate a string of lipsum | |
@param int min Minimum number of words | |
@param int max Maximum number of words | |
#} | |
{% macro string(min, max) %} | |
{% set words = [ | |
'lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit', 'curabitur', 'ultrices', 'et', 'mi', 'suscipit', 'eget', 'vulputate', 'ante', 'proin', 'vel', 'pretium', 'enim', 'vivamus', 'venenatis', 'eu', 'urna', 'tempor', 'blandit', 'nullam', 'pellentesque', 'metus', 'rhoncus', 'mauris', 'mollis', 'neque', 'sed', 'tincidunt', 'tellus', 'nunc', 'ac', 'nulla', 'ut', 'purus', 'etiam', 'id', 'dui', 'justo', 'sapien', 'scelerisque', 'viverra', 'ligula', 'aenean', 'porta', 'condimentum', 'nibh', 'dictum', 'congue', 'odio', 'facilisis', 'finibus', 'mattis', 'vehicula', 'lacinia', 'risus', 'placerat', 'augue', 'fringilla', 'at', 'facilisi', 'arcu', 'diam', 'laoreet' | |
] %} | |
{% set length = range(min, max+1)|random %} | |
{% for word in range(0, length) %} | |
{{ words | random }} | |
{% endfor %} | |
{% endmacro %} | |
{# | |
Generate a string of lipsum in title case | |
@param (optional) int min Minimum number of words, default: 5 | |
@param (optional) int max Maximum number of words, default: min | |
#} | |
{% macro title(min, max) %} | |
{% if not min %} | |
{% set min = 5 %} | |
{% endif %} | |
{% if not max %} | |
{% set max = min %} | |
{% endif %} | |
{{ string(min, max) | title }} | |
{% endmacro %} | |
{# | |
Generate a sentence of lipsum | |
@param (optional) int min Minimum number of words, default: 20 | |
@param (optional) int max Maximum number of words, default: min | |
#} | |
{% macro sentence(min, max) %} | |
{% if not min %} | |
{% set min = 20 %} | |
{% endif %} | |
{% if not max %} | |
{% set max = min %} | |
{% endif %} | |
{{ string(min, max) | trim | capitalize }} | |
{% endmacro %} | |
{# | |
Generate a paragraph of lipsum | |
@param (optional) int min Minimum number of sentences, default: 5 | |
@param (optional) int max Maximum number of sentences, default: min | |
#} | |
{% macro paragraph(min, max) %} | |
{% if not min %} | |
{% set min = 5 %} | |
{% endif %} | |
{% if not max %} | |
{% set max = min %} | |
{% endif %} | |
<p> | |
{% set sentences = range(min, max+1) | random %} | |
{% for index in range(0, sentences) %} | |
{{ sentence(5, 15) | trim }}. | |
{% endfor %} | |
</p> | |
{% endmacro %} |
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 'lipsum.njk' as lipsum %} | |
<h1>{{ lipsum.title() }}</h1> | |
<h2>{{ lipsum.title(10) }}</h2> | |
<p>{{ lipsum.sentence() }}</p> | |
{{ lipsum.paragraph(4) }} | |
Output: | |
<h1> | |
Mauris Odio Id Facilisis Aenean</h1> | |
<h2> | |
Urna Enim Tincidunt Nibh Congue Blandit Nunc Mi Mi Condimentum</h2> | |
<p> | |
Dui vehicula sed nibh laoreet vivamus eu elit porta facilisi finibus sed purus tempor ac nullam dolor et et ut.</p> | |
<p> | |
Blandit vivamus facilisi id rhoncus finibus justo risus neque tempor vulputate urna. | |
Urna amet nunc sit id blandit lacinia tellus. | |
Justo mi consectetur ut purus risus amet nibh ac facilisis congue eget. | |
Augue condimentum risus mollis urna adipiscing at lorem tincidunt consectetur. | |
</p> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment