JSON Schema is a vocabulary that allows you to validate, annotate, and manipulate JSON documents.
This repository contains the sources for the work in progress of the next set of JSON Schema IETF Internet Draft (I-D) documents. For the latest released I-Ds, please see the Specification page on the website.
Reviews, comments and suggestions are most welcome! Please read our guidelines for contributing.
For the current status of issues and pull requests, please see the following labels
Labels are assigned based on Sensible GitHub Labels.
To build all the spec files to HTML from the Markdown sources, run npm run build -- specs. You can also build each individually with npm run build -- specs/filename.md (Example: npm run build -- specs/jsonschema-core.md). You
can also use wildcards to build multiple specs at the same time: npm run build -- specs/jsonschema-*.md. The HTML files will be available in the web folder.
The spec is built using Remark, a markdown engine with good support for plugins and lots of existing plugins we can use. Remark also has a language server and a VSCode extension we can use to get linting and link checking while developing the spec.
The following is a not-necessarily-complete list of configured plugins and the features they make available to you.
- remark-lint -- Enforce markdown style guide.
- remark-validate-links -- Check for broken links.
- remark-gfm -- Adds support for GitHub Flavored Markdown specific markdown features such as autolink literals, footnotes, strikethrough, tables, and tasklists.
- remark-heading-id -- Adds
support for
{#my-anchor}syntax to add anidto an element so it can be referenced using URI fragment syntax. - remark-headings
-- A collection of enhancements for headings.
- Adds hierarchical section numbers to headings.
- Use the
%appendix%prefix on headings that should be numbered as an appendix.
- Use the
- Adds id anchors to headers that don't have one
- Adds hierarchical section numbers to headings.