created: 20190928081810311
modified: 20190928103750812
tags: 
title: Plugin Types
type: text/vnd.tiddlywiki

Plugins have a `plugin-type` field that determines how it is treated. The following values are defined by the core:

* `plugin` - an ordinary plugin
* `theme` - a theme plugin (see ThemeMechanism). Only the theme plugin named in the tiddler $:/theme is activated at any one time (along with any dependent theme plugins)
* `language` - a language plugin (see TranslationMechanism). Only the language plugin named in the tiddler $:/language is activated at any one time (along with any dependent language plugins)

The following plugin types are used internally by the core:

* `import` - for the special $:/Import plugin created while importing is in progress
* `info` - for the special $:/temp/info-plugin tiddler created by the InfoMechanism

While not supported by the plugin library, it is also possible to use custom plugin types to build plugin-like behaviour with a custom user interface. Plugins with a custom type will automatically receive the same behaviour as plain plugins but can display a custom user interface using an appropriate [[view template segment|SystemTag: $:/tags/ViewTemplate]].

By default, tiddlers within plugins with custom plugin types will not be registered as shadow tiddlers (the constituent tiddlers can still be addressed as subtiddlers by the TranscludeWidget, ViewWidget or the [[plugintiddlers Operator]]). Setting a configuration tiddler `$:/config/RegisterPluginType/<plugin-type>` to `yes` will cause the tiddlers within the plugin to be registered as shadow tiddlers.
