@diplodoc/ajv
v0.0.5
Published
Diplodoc JSON schemas (toc, presets, frontmatter, page-constructor, and more) with editor enrichment
Keywords
Readme
@diplodoc/ajv
JSON schemas for Diplodoc configuration files (toc.yaml, presets.yaml, frontmatter,
page-constructor, theme, redirects, leading pages, .yfm, .yfmlint). The schemas are
enriched with editor metadata (markdownDescription, defaultSnippets, titles) so they
power autocompletion and inline docs in editors such as the Diplodoc VS Code extension.
Install
npm install @diplodoc/ajvUsage
import {schemas, tocSchema, type SchemaName} from '@diplodoc/ajv';
// the toc.yaml schema
console.log(tocSchema.title);
// or look one up by name
const name: SchemaName = 'presets-schema';
const schema = schemas[name];The raw JSON files are also published and can be imported directly:
import tocSchema from '@diplodoc/ajv/schemas/toc-schema.json';How schemas are maintained
- Source of truth:
src/yaml/*.yaml— full, ready-to-use schemas. Edit only the YAML. - Generated output:
src/json/*.json— produced from the YAML by the build script. These are committed and shipped.
The build script does one thing: parse YAML and write JSON (formatted with Prettier). No overlays, no transformations.
npm run build:schemas # regenerate src/json from src/yaml
# or, the exported CLI:
npx diplodoc-ajv-build-schemasYou never edit the JSON by hand. On every pull request the
sync-schemas workflow regenerates the JSON from the
YAML and commits the result back to the PR branch, so the JSON always matches the YAML.
Development
npm install
npm run build # build:schemas + bundle + d.ts
npm test
npm run typecheck
npm run lint