manifest.json reference
This page details the attributes of a Castopod Plugin’s manifest, which must be a JSON file.
name (required)
The plugin name, including ‘vendor-name/’ prefix. Examples:
- acme/hello-world
- adaures/click
The name must be lowercase and consist of words separated by -
, .
or _
.
The complete name should match
^[a-z0-9]([_.-]?[a-z0-9]+)*\/[a-z0-9]([_.-]?[a-z0-9]+)*$
.
version (required)
The plugin’s semantic version (eg. 1.0.0) - see https://semver.org/
description
The plugin’s description. This helps people discover your plugin when listed in repositories.
authors
Array one or more persons having authored the plugin. A person is an object with a required “name” field and optional “email” and “url” fields:
Or you can shorten the object into a single string:
homepage
The URL to the project homepage.
license
Specify a license for your plugin so that people know how they are permitted to use it, and any restrictions you’re placing on it.
private
Whether or not to publish the plugin in public directories. If set to true
,
directories should refuse to publish the plugin.
keywords
Array of strings to help your plugin get discovered when listed in repositories.
minCastopodVersion
The minimal version of Castopod with which the plugin is compatible.
hooks
List of hooks used by the plugin. If the hook is not specified, Castopod will not run it.
settings
Declare settings forms for persisting user data. The plugin’s settings forms can
be declared at three levels: general
, podcast
, and episode
.
Each level accepts one or more fields, identified by a key.
The general
, podcast
, and episode
settings are of Fields
object with
each property being a field key and the value being a Field
object.
Field object
A field is a form element:
Property | Type | Note |
---|---|---|
type | checkbox | datetime | email | markdown | number | radio-group | select-multiple | select | text | textarea | toggler | url | Default is text |
label (required) | string | Can be translated (see i18n) |
hint | string | Can be translated (see i18n) |
helper | string | Can be translated (see i18n) |
optional | boolean | Default is false |
options | Options | Required for radio-group , select-multiple , and select types. |
Options object
The Options
object properties are option keys and the value is an Option
.
Option object
Property | Type | Note |
---|---|---|
label (required) | string | Can be translated (see i18n) |
hint | string | Can be translated (see i18n) |
files
Array of file patterns that describes the entries to be included when your plugin is installed.
repository
Repository where the plugin’s code lives. Helpful for people who want to contribute.