Repository navigation
Expand file tree
/
Copy pathemdash-plugin.jsonc
More file actions
50 lines (44 loc) · 2.22 KB
/
Copy pathemdash-plugin.jsonc
File metadata and controls
50 lines (44 loc) · 2.22 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
{
"$schema": "./node_modules/@emdash-cms/plugin-cli/schemas/emdash-plugin.schema.json",
"slug": "content-freshness",
"publisher": "did:plc:iucwrgdd464ddkranaa6ux3l",
"license": "MIT",
"author": { "name": "Eisbachcode", "url": "https://eisbachcode.de" },
"security": { "email": "daniel@eisbachcode.de" },
"repo": "https://github.com/eisbachcode/emdash-plugin-content-freshness",
// The only version check a user meets before installing. EmDash refuses
// an install whose host falls outside this range, so it carries a floor
// and deliberately no ceiling: EmDash ships a minor every 6-8 days, and
// a ceiling would block correct installs every week rather than catch a
// break. The manifest has no advisory "tested up to" field to express
// caution without blocking, so the tested range belongs in the README.
"release": {
"requires": { "env:emdash": ">=1.0.1" }
},
"description": "Audits your content: stale entries, weak or missing SEO descriptions, forgotten drafts, schedules that never fired and missing URL patterns.",
"keywords": ["content", "audit", "seo", "maintenance", "editorial"],
// Trust contract: read content and the collection list, nothing else.
//
// No network at all — every rule is computed from fields the content
// and schema APIs already return. And no `content:write`: this plugin
// reports, it never edits an entry.
"capabilities": ["content:read", "schema:read"],
"allowedHosts": [],
"storage": {
// One row per entry with at least one finding. `rank` orders the
// report most urgent first; `seenIn` finds the rows a finished sweep
// did not confirm, which belong to entries that no longer exist.
"findings": { "indexes": ["collection", "rank", "seenIn", "authorId", ["collection", "rank"]] },
// Findings an editor set aside, one document per entry, keyed like its
// finding row. Read by id only.
"dismissals": { "indexes": [] },
},
"admin": {
"pages": [
{ "path": "/report", "label": "Content freshness", "icon": "clock" },
{ "path": "/settings", "label": "Freshness settings", "icon": "settings" },
],
"widgets": [{ "id": "summary", "title": "Needs attention", "size": "third" }],
"editorPanels": [{ "id": "freshness", "title": "Freshness", "route": "panel" }],
},
}