emoji crafter

a command line tool for automating emoji exports from svg, including animation.

installation

emoji crafter can be installed using cargo:

sh cargo install emoji-crafter

how it works

to create a new emojiset project, just use the new command and provide the path/name for your project:

sh emoji new my-emojis

then change into the new project directory that the command created.

to export your emojiset run either:

sh emoji build # to build once emoji watch # to build on file change

manifest format

the emojiset manifest file (emoji.toml), used for defining what assets are used by the project, and what will be exported at build time.

```toml [emojiset]

human readable name for the project

name = "my emojis"

the main svg file that contains

emoji to be exported

document = "emojiset.svg"

editor stylesheet, imported in the

document and only used for styling

while editing

stylesheet = "emojiset.css"

[[theme]]

human readable name for the theme

name = "my emojis"

all files exported using this

theme will have their filenames

prefixed with this

prefix = ""

stylesheet used for rendering

emoji for the theme

stylesheet = "themes/my emojis.css"

[[output]]

not all platforms work well with

emoji that aren't square, so the

option to trim is disabled

trim = false directory = "original"

[[output]]

some platforms work best with the

transparent parts cropped from

the emoji

trim = true directory = "trimmed" ```

in addition to what's defined on project creation, you can also define templates to render text files:

```toml [[template]]

path to the template

input = "my template.tpl"

where the template should be saved

output = "my document.md" ```

you can use tinytemplate syntax to build your templates.

emojiset format

each emoji is a group that has a desc which contains some toml describing how that group should be exported. for a static image emoji, it looks like:

```toml type = "image"

name of the emoji, prefixed with

a theme name on export

name = "bunne" ```

animations are much the same:

toml type = "animation" name = "bunnehop"

however they also contain groups which make up the individual frames of the animation:

```toml type = "frame"

delay before the next frame in ms

delay = 60

animation timeline position

position = 1 ```


yes i am allergic to capital letters, no i will not spell bunne correctly