maimai
maimai (['maɪ̯maɪ̯], Zangendeutsch for “meme”) provides a command-line application and a Rust library to generate Memes based on a declarative text format.
This is intended to be an alternative to popular WYSIWYG meme editors, that don’t give you much control and often have problems creating reproducable, high quality content.

All image templates used in this project were hand-drawn by Gee for Framamèmes and published under the the terms of the CC-0 License.
Usage
In many cases, a meme is created from 3 “layers”:
- the base image (often taken from a popular TV show or from stock images)
- the text layout that defines, where text is placed on the base image and how it is formatted
- the text content
The first two “layer” are usually shared between different memes and the text content is replaced for a different joke.
A maimai meme definition is written as a TOML document that can extend
other meme definions. This allows implementing the pattern described
above.
# examples/templates/sophie-no-yes.toml
= "sophie-no-yes.png"
[]
= "Bad text"
= [420, 20]
= [360, 360]
= "black"
= 60
[]
= "Good text"
= [420, 420]
= [360, 360]
= "black"
= 60
# examples/reuse.toml
= "templates/sophie-no-yes.toml"
[]
= "Creating everything from scratch"
= "Reusing your work"
License
This project is licensed under the GNU Affero General Public License version 3 or (at your option) any later version (AGPL-3.0-or-later).