diff --git a/docs/standards/index.md b/docs/standards/index.md index e114284c..f41dba13 100644 --- a/docs/standards/index.md +++ b/docs/standards/index.md @@ -12,3 +12,74 @@ You can find further information for: - the [BIDS schema](./schema/index.md) - the [BIDS statistical model specification](.//bids_stats_model/index.md) - the [BIDS apps specification](./bids_app_specification/index.md) + +The following figure shows the relationship between the BIDS specification, validator implementations, and the BIDS schema: + +```mermaid +--- +config: + layout: dagre +--- +flowchart TB + subgraph s6["bids-standard/bids-specification"] + markdown@{ label: "src/
markdown" } + bidsschematools@{ label: "tools/schemacode/
bidsschematools" } + schema@{ label: "src/schema/
YAMLs" } + end + subgraph s2["bids-specification.readthedocs.io"] + specification["specification html"] + schema.json@{ label: "schema.json" } + end + subgraph s_jsr["https://jsr.io/@bids/schema"] + schema.json-jsr["schema.json"] + end + subgraph s5["bids.neuroimaging.io"] + s2 + end + subgraph subGraph5["legacy-validator @ v1.15.1"] + Node.js["Node.js"] + regex["filename patterns"] + web1@{ label: "web" } + cli1["cli"] + end + subgraph subGraph6["bids-validator ≥ v2.0"] + web@{ label: "web" } + deno["deno"] + cli["cli"] + end + subgraph subGraph7["python-validator ≥ v1.14.7"] + python["python"] + library["library"] + cli3["cli"] + end + schema -. is interpreted by .-> bidsschematools + markdown -- is interpreted by --> mkdocs@{ label: "mkdocs" } + bidsschematools -- provides MACROS for --> mkdocs + mkdocs -- renders HTML --> specification + schema -- is instance of --> bids-schema@{ label: "BIDS Schema" } + bids-schema -. is implemented by .-> deno & bidsschematools & python + bids-schema -. is reflected in .-> metaschema.json@{ label: "metaschema.json
JSON Schema" } + schema.json -- is instance of --> bids-schema & metaschema.json + schema.json-jsr -- is instance of --> bids-schema & metaschema.json + bidsschematools -- compiles YAMLs as --> schema.json & schema.json-jsr + regex --> Node.js + Node.js --> web1 & cli1 + deno --> web & cli + python --> library & cli3 + specification -. is interpreted by .-> regex + schema.json-jsr -. is interpreted by .-> deno + bidsschematools -- is used by --> python + markdown@{ shape: docs} + bidsschematools@{ shape: proc} + schema@{ shape: docs} + schema.json@{ shape: doc} + schema.json-jsr@{ shape: doc} + Node.js@{ shape: subproc} + web1@{ shape: rect} + web@{ shape: rect} + deno@{ shape: subproc} + python@{ shape: subproc} + mkdocs@{ shape: proc} + bids-schema@{ shape: rect} + metaschema.json@{ shape: doc} +``` diff --git a/mkdocs.yml b/mkdocs.yml index cd8e7d6b..2d168241 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -20,6 +20,8 @@ plugins: module_name: macros/main # toggle to true if you are in CD/CI environment on_error_fail: true + - panzoom: + full_screen: True # default False - redirects: redirect_maps: # old links from the old website diff --git a/requirements.in b/requirements.in index 7a6a12c5..b344c179 100644 --- a/requirements.in +++ b/requirements.in @@ -3,9 +3,10 @@ gender_guesser geopy jinja2>=3.1.5 markdown-it-py -mkdocs-material[imaging] +mkdocs-material[imaging]>=9.6.3 mkdocs-macros-plugin mkdocs-open-in-new-tab +mkdocs-panzoom-plugin mkdocs-redirects mkdocs-rss-plugin plotly>=5.3.1 diff --git a/requirements.txt b/requirements.txt index 7d8d62ca..eb5f3afd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,6 +14,8 @@ attrs==23.2.0 # referencing babel==2.15.0 # via mkdocs-material +beautifulsoup4==4.13.3 + # via mkdocs-panzoom-plugin bibtexparser==1.4.1 # via pyzotero bids-validator==1.14.6 @@ -113,18 +115,21 @@ mkdocs==1.6.0 # mkdocs-macros-plugin # mkdocs-material # mkdocs-open-in-new-tab + # mkdocs-panzoom-plugin # mkdocs-redirects # mkdocs-rss-plugin mkdocs-get-deps==0.2.0 # via mkdocs mkdocs-macros-plugin==1.0.5 # via -r requirements.in -mkdocs-material==9.5.26 +mkdocs-material==9.6.5 # via -r requirements.in mkdocs-material-extensions==1.3.1 # via mkdocs-material mkdocs-open-in-new-tab==1.0.3 # via -r requirements.in +mkdocs-panzoom-plugin==0.1.3 + # via -r requirements.in mkdocs-redirects==1.2.1 # via -r requirements.in mkdocs-rss-plugin==1.13.0 @@ -240,6 +245,8 @@ six==1.16.0 # via python-dateutil smmap==5.0.1 # via gitdb +soupsieve==2.6 + # via beautifulsoup4 sqlalchemy==2.0.30 # via pybids tabulate==0.9.0 @@ -256,6 +263,7 @@ tinycss2==1.3.0 # cssselect2 typing-extensions==4.12.2 # via + # beautifulsoup4 # formulaic # sqlalchemy tzdata==2024.1