New translations manifest.mdx (Swedish)

[ci skip]
This commit is contained in:
crowdin 2024-07-04 13:49:46 +00:00
parent e05d3ae7a3
commit 4930caad5d

View File

@ -0,0 +1,128 @@
---
title: 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:
```json
{
"name": "Jean Deau",
"email": "jean.deau@example.com",
"url": "https://example.com/"
}
```
Or you can shorten the object into a single string:
```json
"Jean Deau <jean.deau@example.com> (https://example.com/)"
```
### 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.
### 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.
```json
{
"settings": {
"general": { // general settings form
"field-key": {
"type": "text", // default field type: a text input
"label": "Enter a text"
},
},
"podcast": {…}, // settings form for each podcast
"episode": {…}, // settings form for each episode
}
}
```
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.