← Back to all posts

Shared Markup in Private Plugins

our developer community is prolific. currently 7,324 custom plugins contribute to 500,000 personalized dashboards every day.

which means we're storing a lot of markup. but more importantly, you're writing a lot of markup. duplicate markup.

today that ends with Shared Markup.

credit where it's due

this feature probably needs no explanation, because it already exists in ~every software development framework outside TRMNL.

to get this done we stood on the shoulders of giants, leveraging Liquid's built-in template rendering.

what you can do

shared markup is prepended to each of your plugin's layouts, which means it can be used to include common HTML, JS, stylesheets, <script> tags... it's up to you.

shared markup can also help you write cleaner code by defining partials, or components, that may be freely injected anywhere into other layouts.
<!-- shared markup -->
{% template say_hello %}
Hello there, {{ name }}.
{% endtemplate %}

<!-- view markup -->
{% render "say_hello", name: "General Kenobi" %}
get started here or read the docs.

shared markup is also supported in our local development tool, trmnlp:
https://github.com/usetrmnl/trmnlp

a full example plugin (METAR) with shared markup is available below:

give plugins a new hairdo

we look forward to seeing how Shared Markup improves your plugin development workflow, and who knows... maybe we'll add account-level libraries for sharing across all your plugins.

or what about a shared component library any TRMNL developer can contribute to and pull from? hmm...

as usual, stay tuned, and stay focused.

Ryan Kulp

Founder at TRMNL