Repository navigation
Expand file tree
/
Copy pathplugin.schema.json
More file actions
175 lines (175 loc) · 6.07 KB
/
Copy pathplugin.schema.json
File metadata and controls
175 lines (175 loc) · 6.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"format": "uri",
"description": "URL to the JSON Schema used to validate this plugin listing."
},
"name": {
"type": "string",
"description": "The name of your Obsidian plugin."
},
"description": {
"type": "string",
"description": "Short description of your Obsidian plugin, in Markdown format. Full description will be inferred from README.md in your repository."
},
"repository": {
"type": "string",
"format": "uri",
"description": "Git repository where your plugin is hosted."
},
"iconURL": {
"type": "string",
"format": "uri",
"description": "URL to an icon representing this plugin."
},
"id": {
"type": "string",
"pattern": "^[a-z0-9]+(?:_[a-z0-9]+)*$",
"description": "snake_case ID of your plugin. Must match the filename."
},
"authors": {
"type": "array",
"description": "Authors of this plugin.",
"minItems": 1,
"items": {
"$ref": "#/$defs/author"
}
},
"license": {
"type": "string",
"description": "SPDX license identifier for the software license used by this plugin, for example MIT, Apache-2.0 or GPL-3.0-only."
},
"categories": {
"type": "array",
"description": "Categories describing the primary functionality of this plugin.",
"minItems": 1,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/category"
}
},
"links": {
"$ref": "#/$defs/links"
},
"versions": {
"$ref": "#/$defs/versions"
}
},
"required": [
"name",
"description",
"repository",
"id",
"authors",
"license",
"categories",
"versions"
],
"$defs": {
"author": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of this author."
},
"url": {
"type": "string",
"format": "uri",
"description": "URL associated with this author."
}
},
"required": ["name"]
},
"links": {
"type": "object",
"description": "Additional links related to this plugin.",
"additionalProperties": false,
"properties": {
"homepage": {
"type": "string",
"format": "uri",
"description": "Homepage for this plugin."
},
"documentation": {
"type": "string",
"format": "uri",
"description": "Documentation for this plugin."
},
"issues": {
"type": "string",
"format": "uri",
"description": "Issue tracker for this plugin."
},
"support": {
"type": "string",
"format": "uri",
"description": "Support page or community for this plugin."
},
"donate": {
"type": "string",
"format": "uri",
"description": "Donation or sponsorship page for this plugin."
}
}
},
"versions": {
"type": "object",
"description": "Configuration for discovering plugin versions from repository releases or tags.",
"additionalProperties": false,
"properties": {
"source": {
"type": "string",
"enum": ["releases", "tags"],
"default": "releases",
"description": "Where versions should be discovered from."
},
"tagPattern": {
"type": "string",
"default": "^v?(?<version>\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?)$",
"description": "Regular expression used to extract the plugin version from a Git tag."
},
"assetPattern": {
"type": "string",
"default": "^(?<id>[a-z0-9]+(?:_[a-z0-9]+)*)-(?<version>\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?)-obsidian-(?<obsidianVersion>\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?)\\.obby$",
"description": "Regular expression used to identify .obby plugin packages. By default, packages must follow the '<plugin-id>-<plugin-version>-obsidian-<obsidian-version>.obby' naming convention."
},
"includePrereleases": {
"type": "boolean",
"default": false,
"description": "Whether prerelease versions should be included in the plugin registry."
}
}
},
"category": {
"type": "string",
"enum": [
"administration",
"analytics",
"anti-cheat",
"automation",
"chat",
"developer-tools",
"economy",
"gameplay",
"integration",
"libraries",
"minigames",
"moderation",
"permissions",
"performance",
"quality-of-life",
"security",
"social",
"utility",
"world-generation",
"world-management"
]
}
}
}