{"id":13625841,"url":"https://github.com/lnoor/sphinx-jsonschema","last_synced_at":"2025-10-05T20:25:35.359Z","repository":{"id":16836923,"uuid":"80311370","full_name":"lnoor/sphinx-jsonschema","owner":"lnoor","description":"A Sphinx extension to display a JSON Schema","archived":false,"fork":false,"pushed_at":"2024-10-25T16:22:44.000Z","size":140,"stargazers_count":79,"open_issues_count":9,"forks_count":23,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-13T22:55:07.084Z","etag":null,"topics":["json-schema","sphinx-doc","sphinx-extension"],"latest_commit_sha":null,"homepage":"http://sphinx-jsonschema.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lnoor.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-28T21:17:46.000Z","updated_at":"2025-07-14T08:09:44.000Z","dependencies_parsed_at":"2025-01-04T08:08:43.818Z","dependency_job_id":"476c04c9-ce9e-42ec-9cb7-cf4409cc79d7","html_url":"https://github.com/lnoor/sphinx-jsonschema","commit_stats":{"total_commits":98,"total_committers":15,"mean_commits":6.533333333333333,"dds":"0.34693877551020413","last_synced_commit":"e1d2feb0a73307fa2238dc121d9feb6223dcb28b"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/lnoor/sphinx-jsonschema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnoor%2Fsphinx-jsonschema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnoor%2Fsphinx-jsonschema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnoor%2Fsphinx-jsonschema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnoor%2Fsphinx-jsonschema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lnoor","download_url":"https://codeload.github.com/lnoor/sphinx-jsonschema/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnoor%2Fsphinx-jsonschema/sbom","scorecard":{"id":596383,"data":{"date":"2025-08-11","repo":{"name":"github.com/lnoor/sphinx-jsonschema","commit":"e1d2feb0a73307fa2238dc121d9feb6223dcb28b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 10/25 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 15 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T23:14:27.406Z","repository_id":16836923,"created_at":"2025-08-20T23:14:27.406Z","updated_at":"2025-08-20T23:14:27.406Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278512492,"owners_count":25999313,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json-schema","sphinx-doc","sphinx-extension"],"created_at":"2024-08-01T21:02:03.604Z","updated_at":"2025-10-05T20:25:35.339Z","avatar_url":"https://github.com/lnoor.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":".. sphinx-jsonschema README\n   Copyright: (C) 2017-2020, Leo Noordergraaf\n\n=================\nsphinx-jsonschema\n=================\n\nThis package contains sphinx-jsonschema, an extension to Sphinx to allow\nauthors to display a `JSON Schema \u003chttp://json-schema.org\u003e`_ in their\ndocumentation.\n\nA dockerized version can be found at: `Extended Sphinx \u003chttps://hub.docker.com/r/lnoor/sphinx-extended\u003e`_.\n\nIt arose out of a personal itch and implements what I needed.\nSome features of JSON Schema are (not yet) implemented.\nAlso I can imagine that other display layouts are desired.\n\nLet me know in comments and perhaps pull requests.\n\n\nFeatures\n========\n\n* Near complete support for all features of JSON Schema Draft 4.\n* Supports inline schemas as well as external schemas loaded from a file or URL.\n* Supports JSON Pointer notation on external resources to select a subschema.\n* Supports cross references between schemas.\n* Allows reStructuredText markup in ``title`` and ``description`` fields.\n* Allows JSON Schema definitions in both JSON and YAML format.\n* Supports the ``examples`` keyword from Draft 7.\n\nInstallation\n============\nInstall the package using pip::\n\n    pip install sphinx-jsonschema\n\nand add it to the extensions list in your conf.py::\n\n    extensions = [\n        'sphinx-jsonschema'\n    ]\n\nUsage\n=====\n\nThe extension adds a single directive to Sphinx: **jsonschema**.\nYou provide it with either an http URL to a schema or you may\nembed the schema inline.\n\nExample\n=======\n\nDisplay a schema fetched from a website::\n\n    .. jsonschema:: http://some.domain/with/a/path/spec.json\n\n\nDisplay a schema located in a file with an absolute path::\n\n    .. jsonschema:: /home/leo/src/jsonschema/sample.json\n\nA path relative to the referencing document::\n\n    .. jsonschema:: jsonschema/sample.json\n\nOr a schema defined in a Python object::\n\n    .. jsonschema:: mod.pkg.SCHEMA\n\nWith all three of the above you may add JSON Pointer notation to display a subschema::\n\n    .. jsonschema:: http://some.domain/with/a/path/spec.json#/path/to/schema\n    .. jsonschema:: /home/leo/src/jsonschema/sample.json#/path/to/schema\n    .. jsonschema:: jsonschema/sample.json#/path/to/schema\n    .. jsonschema:: mod.pkg.SCHEMA#/path/to/schema\n\nAlternatively you can embed the schema::\n\n    .. jsonschema::\n\n        {\n            \"$schema\": \"This field is ignored for now. Perhaps use it to indicate schema version in display?\",\n            \"title\": \"Test data set 1: **Simple type**\",\n            \"id\": \"http://this.better.be.a.regular.domain\",\n            \"description\": \"These data sets exercise `JSON Schema \u003chttp://json-schema.org\u003e`_ constructions and show how they are rendered.\\n\\nNote that it is possible to embed reStructuredText elements in strings.\",\n            \"type\": \"string\",\n            \"minLength\": 10,\n            \"maxLength\": 100,\n            \"pattern\": \"^[A-Z]+$\"\n        }\n\nThis notation does not support JSON Pointer.\n\nJSON Schema extension\n=====================\n\n$$target\n    sphinx-jsonschema extends JSON Schema with the ``$$target`` key.\n\n    This key is only recognized at the outermost object of the schema.\n\nJSON Schema uses the ``$ref`` key in combination with the ``$id`` key to cross-reference between schemas.\n\nSphinx-jsonschema ignores ``$id`` but uses the value of ``$ref`` to create a reStructuredText ``:ref:`` role.\n\nFor this to work you need to mark the target schema with the ``$$target`` key, the value of which must be\nidentical to the value of the corresponding ``$ref`` key.\n\nSo a schema::\n\n    {\n        \"title\": \"Schema 1\",\n        \"$ref\": \"#/definitions/schema2\"\n    }\n\nwill have its ``$ref`` replaced by a link pointing to::\n\n    {\n        \"title\": \"Schema 2\",\n        \"$$target\": \"#/definitions/schema2\"\n        ...\n    }\n\nOccasionally a schema will be addressed from several other schemas using different ``$ref`` values.\nIn that case the value of ``$$target`` should be a list enumerating all different references to the\nschema.\n\n$$description\n   sphinx-jsonschema extends JSON Schema with the ``$$description`` key.\n\nThis key serves the same purpose as the ``description`` key and can be used in the same way.\nIt differs from ``description`` in that it allows an array of strings as value instead of a\nsingle string.\n\nThis allows you to write::\n\n   {\n      ...\n      \"description\": \"+------------+------------+-----------+ \\n| Header 1   | Header 2   | Header 3  | \\n+============+============+===========+ \\n| body row 1 | column 2   | column 3  | \\n+------------+------------+-----------+ \\n| body row 2 | Cells may span columns.| \\n+------------+------------+-----------+ \\n| body row 3 | Cells may  | - Cells   | \\n+------------+ span rows. | - contain | \\n| body row 4 |            | - blocks. | \\n+------------+------------+-----------+\",\n      ...\n   }\n\nas::\n\n   {\n      ...\n      \"$$description\": [\n         \"+------------+------------+-----------+\",\n         \"| Header 1   | Header 2   | Header 3  |\",\n         \"+============+============+===========+\",\n         \"| body row 1 | column 2   | column 3  |\",\n         \"+------------+------------+-----------+\",\n         \"| body row 2 | Cells may span columns.|\",\n         \"+------------+------------+-----------+\",\n         \"| body row 3 | Cells may  | - Cells   |\",\n         \"+------------+ span rows. | - contain |\",\n         \"| body row 4 |            | - blocks. |\",\n         \"+------------+------------+-----------+\"\n      ],\n      ...\n   }\n\nWhich clearly is much more readable and maintainable.\n\nLicence\n=======\n\nCopyright Leo Noordergraaf, All rights reserved.\n\nThis software is made available under the GPL v3.\n\n\nChangelog\n=========\n\nVersion 1.19.0\n--------------\n\nGlenn Nicholls \u003chttps://github.com/GlenNicholls\u003e contributed code to load a schema from a\nPython dict or object (or actually any Python entity with a ``__str__`` method.).\n\nVersion 1.18.0\n--------------\n\nExpanding on the work of `Pavel Odvody \u003chttps://github.com/shaded-enmity\u003e`_ with JSON Pointer\nthe ``:pass_unmodified:`` option is included.\nThis option prevents escaping the string pointed at.\nThis extension arose from discussions with `Ryan Lane \u003chttps://github.com/ryan-lane\u003e`\n\nVersion 1.17.2\n--------------\n\n`Ezequiel Orbe \u003chttps://github.com/eorbe\u003e`_ found, reported and fixed a bug escaping backspaces.\n\nVersion 1.17.0\n--------------\n\n`Pavel Odvody \u003chttps://github.com/shaded-enmity\u003e`_ contributed the ``:hide_key:`` directive option.\nThis option allows you to hide certain keys, specified by a JSON Path specification, to be excluded\nfrom rendering.\n\n\nVersion 1.16.11\n---------------\n\nRemoved debugging code left in, pointed out by `Kevin Landreth \u003chttps://github.com/CrackerJackMack\u003e`.\n\nVersion 1.16.10\n---------------\n\n`iamdbychkov \u003chttps://github.com/iamdbychkov\u003e`_ added the ``:encoding:`` directive option.\nThis option allows explicit control of the encoding used to read a file\ninstead of relying on the operating system default.\n\nVersion 1.16.9\n--------------\n\nBugfix.\n\nVersion 1.16.8\n--------------\n\n`Jens Nielsen \u003chttps://github.com/jenshnielsen\u003e`_ improved rendering of string values.\n\nVersion 1.16.5-6\n----------------\n\nBugfix version.\n\nVersion 1.16.4\n--------------\n\nIntroduces the ``:lift_title:`` directive option suggested by `ankostis \u003chttps://github.com/ankostis\u003e`_.\nAnkostis also provided an example on how to extend the formatter to handle custom properties.\n\nFixed a bug in rendering the ``items`` attribute of the ``array`` type reported by nijel (https://github.com/nijel).\n\nVersion 1.16.1-3\n----------------\n\nFixed bugs rendering the ``default`` and ``examples`` keywords.\n\nIntroduced the configuration entry ``jsonschema_options`` setting default values for the directive options\nintroduced in 1.16. The options now can accept a parameter to explicitly turn the option on or off.\n\nVersion 1.16\n------------\n\n`WouterTuinstra \u003chttps://github.com/WouterTuinstra\u003e`_ reimplemented support for ``dependencies`` and properly this time.\nHe also improved error handling and reporting and added a couple of options improving the handling of references.\n\nThe most important additions are the directive options ``:lift_description:``, ``:lift_definitions:``,\n``:auto_target:`` and ``:auto_reference:``.\n\nIn addition to all that he also implemented support for the ``if``, ``then`` and ``else`` keywords.\n\nVersion 1.15\n------------\n\nAdd support for the ``dependencies`` key.\n\n\nVersions 1.12 and 1.13 and 1.14\n-------------------------------\n\nSolved several minor bugs.\n\n\nVersion 1.11\n------------\n\nSolved a divergence of the standard reported by bbasic (https://github.com/bbasics).\n\nVersion 1.10\n------------\n\n`Ivan Vysotskyy \u003chttps://github.com/ivysotskyi\u003e`_ contributed the idea to use an array with\nthe ``description`` key resulting in the new ``$$description`` key.\n\n\nVersion 1.9\n-----------\n\n`Tom Walter \u003chttps://github.com/EvilPuppetMaster\u003e`_ contributed the ``example`` support.\n\nVersion 1.4\n-----------\n\n`Chris Holdgraf \u003chttps://github.com/choldgraf\u003e`_ contributed Python3 and yaml support.\n\nVersion 1.3\n-----------\n\nAdd unicode support.\n\nVersion 1.2\n-----------\n\nImproved formatting.\n\nVersion 1.1\n-----------\n\nImplemented schema cross referencing.\n\nVersion 1.0\n-----------\n\nInitial release of a functioning plugin.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnoor%2Fsphinx-jsonschema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flnoor%2Fsphinx-jsonschema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnoor%2Fsphinx-jsonschema/lists"}