script-utils/linters/eslint-rules/manifest-description
ESLint rule: manifest-description
Enforces the Community directory’s constraints on a plugin’s manifest.json description.
Two of these checks deliberately diverge from obsidianmd/validate-manifest:
- Self-reference, not the word
plugin. Upstream’sFORBIDDEN_WORDSbans the bare substringpluginin the description, which rejects two descriptions the directory itself passed untouched -Enhances Note composer core plugin.and...not plugin updates...- because each names something other than itself. The directory’s actual objection is self-reference, so only self-referential phrases are matched here. - No character whitelist. Upstream’s format check rejects anything outside[A-Za-z0-9\s.,!?'"-], which fails backticks, em dashes, parentheses, colons and slashes. Seven live listings carry those and the directory flagged none, so the check is noise rather than a gate.
The no-Obsidian check has the opposite provenance: the directory enforces it and no Obsidian document states it, which is what cost a released plugin a version bump for one word.
Runs on the @eslint/json json/json language; see manifest-helpers.ts for why the AST is Momoa rather than ESTree.
Variables
Section titled “Variables”| Variable | Description |
|---|---|
| manifestDescription | ESLint rule enforcing the Community directory’s constraints on a plugin’s manifest.json description. |
| MESSAGE_ID_CONTAINS_OBSIDIAN | Message ID reported when the description contains the word Obsidian. |
| MESSAGE_ID_MISSING_PERIOD | Message ID reported when the description does not end with a period. |
| MESSAGE_ID_NOT_CAPITALIZED | Message ID reported when the description does not start with a capital letter. |
| MESSAGE_ID_SELF_REFERENCE | Message ID reported when the description refers to itself. |
| MESSAGE_ID_TOO_LONG | Message ID reported when the description is longer than the directory allows. |
| MESSAGE_ID_TOO_SHORT | Message ID reported when the description is too short to describe anything. |