/plugins

e-ink dashboard plugin logic

Primary LanguageHTML

TRMNL plugins

non-exhaustive collection of TRMNL plugin logic. in sharing these assets we intend to provide transparency in how TRMNL manages user data with respect to 3rd party integrations.

Native plugins

native plugin structure:

  1. file plugin_name.rb represents instance of a PluginSetting (user-owned), which belongs to a Plugin (global, immutable)
  2. screens are generated by first invoking Plugins::<PluginName>.new(plugin_setting).locals
  3. the locals hash / JSON object contains all the values needed for rendering a screen
  4. files inside /views interpolate values from locals using ERB syntax (<%= var %>)
  5. views prefixed with _, for example _common, are called "partials" (or 'components' in other frameworks)
  6. shared code is not intended to "just work" but to showcase which values, and how, are extracted from 3rd party apps for TRMNL screen generation

Community plugins

to be featured here, add trmnl topic to your repo, then open a PR or join the developer-only Discord server (link inside TRMNL UI).