Markdown Extensions

This documentation comes with several markdown extensions that allow interactive elements and data pulled from the schema.

Schema Integration

schema_string

Using a reference to a value in the JSON schema (without $defs) will embed that string into the markdown text.

Example:

{schema_string:shapes/graphic-element/description}

Output:

Element used to display vector daya in a shape layer

Links to the relevant section in the specs.

Example:

{link:shapes/ellipse}

Output:

View Schema

Link to the relevant section in the formatted schema.

Example:

{schema_link:shapes/ellipse}

Output:

View Schema

schema_subtype_table

Used to list all the ty values for Layer / Shape etc.

Example:

{schema_subtype_table:layers/all-layers:ty}

Output:

ty Type
0 Precomposition Layer
2 Image Layer
3 Null Layer
1 Solid Layer
4 Shape Layer

schema_object

Embeds a property table from the schema.

Example:

{schema_object:shapes/ellipse}

Output:

Composition Diagram for Ellipse Ellipse Shape Graphic Element Visual Object
Attribute Type Title Description
nm string

Name

Name, as seen from editors and the like

hd boolean

Hidden

Whether the shape is hidden

ty string = 'el'

Shape Type

Shape Type

d Shape Direction

Direction

Direction the shape is drawn as, mostly relevant when using trim path

p Position

Position

Position

s Vector

Size

Size

schema_enum

Same as schema_object but for enumerations.

Example:

{schema_enum:fill-rule}

Output:

Value Name Description
1 Non Zero Everything is colored (You can think of this as an OR)
2 Even Odd Colored based on intersections and path direction, can be used to create "holes"

schema_inheritance

Shows the inheritance diagram for an object type.

Example:

{schema_inheritance:shapes/ellipse}

Output:

Ellipse Shape Graphic Element Visual Object

json_file

Embed a JSON file into markdown, including syntax highlighting and reference links for JSON schema.

Example:

{json_file:lottie.schema.json}

Lottie Player

<lottie>

Embeds a lottie into the document

Example:

<lottie
    src="static/logo.json"
    width="200"
    background="white"
/>

Output:

lottie-playground

Embeds a player side by side to a JSON snipped and controls to tweak the animation

Example:

<lottie-playground example="rectangle.json">
    <title>Example</title>
    <form>
        <input title="Position x" type="range" min="0" max="512" value="256"/>
        <input title="Position y" type="range" min="0" max="512" value="256"/>
        <input title="Width" type="range" min="0" max="512" value="256"/>
        <input title="Height" type="range" min="0" max="512" value="256"/>
        <input title="Roundness" type="range" min="0" max="512" value="0"/>
    </form>
    <json>lottie.layers[0].shapes[0].it[0]</json>
    <script>
    lottie.layers[0].shapes[0].it[0].p.k = [
        data["Position x"], data["Position y"]
    ];
    lottie.layers[0].shapes[0].it[0].s.k = [
        data["Width"], data["Height"]
    ];
    lottie.layers[0].shapes[0].it[0].r.k = data["Roundness"];
    </script>
</lottie-playground>

Output:

Example

256
256
256
256
0

Miscellaneous

[RFC]

Links to a IETF RFC.

Example:

[RFC9402]

Output:

[RFC9402]

BCP14

Automatically highlights keywords from BCP 14 ([RFC2119] [RFC8174]).

Example:

MUST

Output:

MUST

Math Input

You can embed LATEX math mode code.

Example:

Normal text with inline $\LaTeX$: $\frac{1}{x}$.

$$\sum\limits_{i=1}^n{n\choose i}t^i(1-t)^{n-1}P_i$$

Output:

Normal text with inline LATEX: 1x.

i=1n(ni)ti(1t)n1Pi