jurisdiction
for a\nlegal item",
"(Container) edition holding the item (e.g. \u201C3\u201D when citing a chapter\nin the third edition of a book).",
@@ -21583,6 +21622,11 @@ var require_yaml_intelligence_resources = __commonJS({
"A link or path to the brand\u2019s medium-sized logo, or a link or path to\nboth the light and dark versions.",
"A link or path to the brand\u2019s large- or full-sized logo, or a link or\npath to both the light and dark versions.",
"Names of customizeable logos",
+ "Source path or source path with layout options for logo",
+ "X-Y positioning of logo",
+ "Padding of logo",
+ "Width of logo",
+ "Source path of logo",
"The brand\u2019s custom color palette and theme.",
"The brand\u2019s custom color palette. Any number of colors can be\ndefined, each color having a custom name.",
"The foreground color, used for text.",
@@ -21615,11 +21659,12 @@ var require_yaml_intelligence_resources = __commonJS({
"Font files and definitions for the brand.",
"A font weight.",
"A font style.",
- "A Google Font definition.",
- "The font family name, which must match the name of the font on Google\nFonts.",
+ "The font family name, which must match the name of the font on the\nfoundry website.",
"The font weights to include.",
"The font styles to include.",
"The font display method, determines how a font face is font face is\nshown depending on its download status and readiness for use.",
+ "A font definition from Google Fonts.",
+ "A font definition from fonts.bunny.net.",
"A method for providing font files directly, either locally or from an\nonline location.",
"The font family name.",
"The font files to include. These can be local or online. Local file\npaths should be relative to the brand.yml
file. Online\npaths should be complete URLs.",
@@ -23908,12 +23953,12 @@ var require_yaml_intelligence_resources = __commonJS({
mermaid: "%%"
},
"handlers/mermaid/schema.yml": {
- _internalId: 187585,
+ _internalId: 187636,
type: "object",
description: "be an object",
properties: {
"mermaid-format": {
- _internalId: 187577,
+ _internalId: 187628,
type: "enum",
enum: [
"png",
@@ -23929,7 +23974,7 @@ var require_yaml_intelligence_resources = __commonJS({
exhaustiveCompletions: true
},
theme: {
- _internalId: 187584,
+ _internalId: 187635,
type: "anyOf",
anyOf: [
{
diff --git a/src/resources/editor/tools/yaml/web-worker.js b/src/resources/editor/tools/yaml/web-worker.js
index 6983ad64ff8..e68bac73b54 100644
--- a/src/resources/editor/tools/yaml/web-worker.js
+++ b/src/resources/editor/tools/yaml/web-worker.js
@@ -12224,7 +12224,9 @@ try {
id: "brand-font-with",
description: "Font files and definitions for the brand.",
object: {
- closed: false
+ additionalProperties: {
+ ref: "brand-font"
+ }
}
},
{
@@ -12234,6 +12236,9 @@ try {
{
ref: "brand-font-google"
},
+ {
+ ref: "brand-font-bunny"
+ },
{
ref: "brand-font-file"
},
@@ -12254,7 +12259,20 @@ try {
600,
700,
800,
- 900
+ 900,
+ "thin",
+ "extra-light",
+ "ultra-light",
+ "light",
+ "normal",
+ "regular",
+ "medium",
+ "semi-bold",
+ "demi-bold",
+ "bold",
+ "extra-bold",
+ "ultra-bold",
+ "black"
],
default: 400
},
@@ -12267,58 +12285,64 @@ try {
],
default: "normal"
},
+ {
+ id: "brand-font-common",
+ schema: {
+ anyOf: [
+ "string",
+ {
+ object: {
+ closed: true,
+ properties: {
+ family: {
+ description: "The font family name, which must match the name of the font on the foundry website.",
+ schema: "string"
+ },
+ weight: {
+ description: "The font weights to include.",
+ maybeArrayOf: {
+ ref: "brand-font-weight"
+ },
+ default: [
+ 400,
+ 700
+ ]
+ },
+ style: {
+ description: "The font styles to include.",
+ maybeArrayOf: {
+ ref: "brand-font-style"
+ },
+ default: [
+ "normal",
+ "italic"
+ ]
+ },
+ display: {
+ description: "The font display method, determines how a font face is font face is shown depending on its download status and readiness for use.\n",
+ enum: [
+ "auto",
+ "block",
+ "swap",
+ "fallback",
+ "optional"
+ ],
+ default: "swap"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
{
id: "brand-font-google",
- description: "A Google Font definition.",
+ description: "A font definition from Google Fonts.",
object: {
closed: true,
properties: {
google: {
- anyOf: [
- "string",
- {
- object: {
- closed: true,
- properties: {
- family: {
- description: "The font family name, which must match the name of the font on Google Fonts.",
- schema: "string"
- },
- weight: {
- description: "The font weights to include.",
- maybeArrayOf: {
- ref: "brand-font-weight"
- },
- default: [
- 400,
- 700
- ]
- },
- style: {
- description: "The font styles to include.",
- maybeArrayOf: {
- ref: "brand-font-style"
- },
- default: [
- "normal",
- "italic"
- ]
- },
- display: {
- description: "The font display method, determines how a font face is font face is shown depending on its download status and readiness for use.\n",
- enum: [
- "auto",
- "block",
- "swap",
- "fallback",
- "optional"
- ],
- default: "swap"
- }
- }
- }
- }
- ]
+ ref: "brand-font-common"
}
},
required: [
@@ -12326,6 +12350,21 @@ try {
]
}
},
+ {
+ id: "brand-font-bunny",
+ description: "A font definition from fonts.bunny.net.",
+ object: {
+ closed: true,
+ properties: {
+ bunny: {
+ ref: "brand-font-common"
+ }
+ },
+ required: [
+ "bunny"
+ ]
+ }
+ },
{
id: "brand-font-file",
description: "A method for providing font files directly, either locally or from an online location.",
@@ -21401,7 +21440,7 @@ try {
"Short/abbreviated form of container-title;",
"A minor contributor to the item; typically cited using \u201Cwith\u201D before\nthe name when listed in a bibliography.",
"Curator of an exhibit or collection (e.g. in a museum).",
- "Physical (e.g. size) or temporal (e.g.\uFFFD\uFFFDrunning time) dimensions of\nthe item.",
+ "Physical (e.g. size) or temporal (e.g. running time) dimensions of\nthe item.",
"Director (e.g. of a film).",
"Minor subdivision of a court with a jurisdiction
for a\nlegal item",
"(Container) edition holding the item (e.g. \u201C3\u201D when citing a chapter\nin the third edition of a book).",
@@ -21584,6 +21623,11 @@ try {
"A link or path to the brand\u2019s medium-sized logo, or a link or path to\nboth the light and dark versions.",
"A link or path to the brand\u2019s large- or full-sized logo, or a link or\npath to both the light and dark versions.",
"Names of customizeable logos",
+ "Source path or source path with layout options for logo",
+ "X-Y positioning of logo",
+ "Padding of logo",
+ "Width of logo",
+ "Source path of logo",
"The brand\u2019s custom color palette and theme.",
"The brand\u2019s custom color palette. Any number of colors can be\ndefined, each color having a custom name.",
"The foreground color, used for text.",
@@ -21616,11 +21660,12 @@ try {
"Font files and definitions for the brand.",
"A font weight.",
"A font style.",
- "A Google Font definition.",
- "The font family name, which must match the name of the font on Google\nFonts.",
+ "The font family name, which must match the name of the font on the\nfoundry website.",
"The font weights to include.",
"The font styles to include.",
"The font display method, determines how a font face is font face is\nshown depending on its download status and readiness for use.",
+ "A font definition from Google Fonts.",
+ "A font definition from fonts.bunny.net.",
"A method for providing font files directly, either locally or from an\nonline location.",
"The font family name.",
"The font files to include. These can be local or online. Local file\npaths should be relative to the brand.yml
file. Online\npaths should be complete URLs.",
@@ -23909,12 +23954,12 @@ try {
mermaid: "%%"
},
"handlers/mermaid/schema.yml": {
- _internalId: 187585,
+ _internalId: 187636,
type: "object",
description: "be an object",
properties: {
"mermaid-format": {
- _internalId: 187577,
+ _internalId: 187628,
type: "enum",
enum: [
"png",
@@ -23930,7 +23975,7 @@ try {
exhaustiveCompletions: true
},
theme: {
- _internalId: 187584,
+ _internalId: 187635,
type: "anyOf",
anyOf: [
{
diff --git a/src/resources/editor/tools/yaml/yaml-intelligence-resources.json b/src/resources/editor/tools/yaml/yaml-intelligence-resources.json
index 2e2e9dc6c9f..949b774e239 100644
--- a/src/resources/editor/tools/yaml/yaml-intelligence-resources.json
+++ b/src/resources/editor/tools/yaml/yaml-intelligence-resources.json
@@ -5195,7 +5195,9 @@
"id": "brand-font-with",
"description": "Font files and definitions for the brand.",
"object": {
- "closed": false
+ "additionalProperties": {
+ "ref": "brand-font"
+ }
}
},
{
@@ -5205,6 +5207,9 @@
{
"ref": "brand-font-google"
},
+ {
+ "ref": "brand-font-bunny"
+ },
{
"ref": "brand-font-file"
},
@@ -5225,7 +5230,20 @@
600,
700,
800,
- 900
+ 900,
+ "thin",
+ "extra-light",
+ "ultra-light",
+ "light",
+ "normal",
+ "regular",
+ "medium",
+ "semi-bold",
+ "demi-bold",
+ "bold",
+ "extra-bold",
+ "ultra-bold",
+ "black"
],
"default": 400
},
@@ -5238,58 +5256,64 @@
],
"default": "normal"
},
+ {
+ "id": "brand-font-common",
+ "schema": {
+ "anyOf": [
+ "string",
+ {
+ "object": {
+ "closed": true,
+ "properties": {
+ "family": {
+ "description": "The font family name, which must match the name of the font on the foundry website.",
+ "schema": "string"
+ },
+ "weight": {
+ "description": "The font weights to include.",
+ "maybeArrayOf": {
+ "ref": "brand-font-weight"
+ },
+ "default": [
+ 400,
+ 700
+ ]
+ },
+ "style": {
+ "description": "The font styles to include.",
+ "maybeArrayOf": {
+ "ref": "brand-font-style"
+ },
+ "default": [
+ "normal",
+ "italic"
+ ]
+ },
+ "display": {
+ "description": "The font display method, determines how a font face is font face is shown depending on its download status and readiness for use.\n",
+ "enum": [
+ "auto",
+ "block",
+ "swap",
+ "fallback",
+ "optional"
+ ],
+ "default": "swap"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
{
"id": "brand-font-google",
- "description": "A Google Font definition.",
+ "description": "A font definition from Google Fonts.",
"object": {
"closed": true,
"properties": {
"google": {
- "anyOf": [
- "string",
- {
- "object": {
- "closed": true,
- "properties": {
- "family": {
- "description": "The font family name, which must match the name of the font on Google Fonts.",
- "schema": "string"
- },
- "weight": {
- "description": "The font weights to include.",
- "maybeArrayOf": {
- "ref": "brand-font-weight"
- },
- "default": [
- 400,
- 700
- ]
- },
- "style": {
- "description": "The font styles to include.",
- "maybeArrayOf": {
- "ref": "brand-font-style"
- },
- "default": [
- "normal",
- "italic"
- ]
- },
- "display": {
- "description": "The font display method, determines how a font face is font face is shown depending on its download status and readiness for use.\n",
- "enum": [
- "auto",
- "block",
- "swap",
- "fallback",
- "optional"
- ],
- "default": "swap"
- }
- }
- }
- }
- ]
+ "ref": "brand-font-common"
}
},
"required": [
@@ -5297,6 +5321,21 @@
]
}
},
+ {
+ "id": "brand-font-bunny",
+ "description": "A font definition from fonts.bunny.net.",
+ "object": {
+ "closed": true,
+ "properties": {
+ "bunny": {
+ "ref": "brand-font-common"
+ }
+ },
+ "required": [
+ "bunny"
+ ]
+ }
+ },
{
"id": "brand-font-file",
"description": "A method for providing font files directly, either locally or from an online location.",
@@ -14372,7 +14411,7 @@
"Short/abbreviated form of container-title;",
"A minor contributor to the item; typically cited using “with” before\nthe name when listed in a bibliography.",
"Curator of an exhibit or collection (e.g. in a museum).",
- "Physical (e.g. size) or temporal (e.g.��running time) dimensions of\nthe item.",
+ "Physical (e.g. size) or temporal (e.g. running time) dimensions of\nthe item.",
"Director (e.g. of a film).",
"Minor subdivision of a court with a jurisdiction
for a\nlegal item",
"(Container) edition holding the item (e.g. “3” when citing a chapter\nin the third edition of a book).",
@@ -14555,6 +14594,11 @@
"A link or path to the brand’s medium-sized logo, or a link or path to\nboth the light and dark versions.",
"A link or path to the brand’s large- or full-sized logo, or a link or\npath to both the light and dark versions.",
"Names of customizeable logos",
+ "Source path or source path with layout options for logo",
+ "X-Y positioning of logo",
+ "Padding of logo",
+ "Width of logo",
+ "Source path of logo",
"The brand’s custom color palette and theme.",
"The brand’s custom color palette. Any number of colors can be\ndefined, each color having a custom name.",
"The foreground color, used for text.",
@@ -14587,11 +14631,12 @@
"Font files and definitions for the brand.",
"A font weight.",
"A font style.",
- "A Google Font definition.",
- "The font family name, which must match the name of the font on Google\nFonts.",
+ "The font family name, which must match the name of the font on the\nfoundry website.",
"The font weights to include.",
"The font styles to include.",
"The font display method, determines how a font face is font face is\nshown depending on its download status and readiness for use.",
+ "A font definition from Google Fonts.",
+ "A font definition from fonts.bunny.net.",
"A method for providing font files directly, either locally or from an\nonline location.",
"The font family name.",
"The font files to include. These can be local or online. Local file\npaths should be relative to the brand.yml
file. Online\npaths should be complete URLs.",
@@ -16880,12 +16925,12 @@
"mermaid": "%%"
},
"handlers/mermaid/schema.yml": {
- "_internalId": 187585,
+ "_internalId": 187636,
"type": "object",
"description": "be an object",
"properties": {
"mermaid-format": {
- "_internalId": 187577,
+ "_internalId": 187628,
"type": "enum",
"enum": [
"png",
@@ -16901,7 +16946,7 @@
"exhaustiveCompletions": true
},
"theme": {
- "_internalId": 187584,
+ "_internalId": 187635,
"type": "anyOf",
"anyOf": [
{
diff --git a/src/resources/formats/html/bootstrap/_bootstrap-variables.scss b/src/resources/formats/html/bootstrap/_bootstrap-variables.scss
index 036ee20b233..3d8f07d395c 100644
--- a/src/resources/formats/html/bootstrap/_bootstrap-variables.scss
+++ b/src/resources/formats/html/bootstrap/_bootstrap-variables.scss
@@ -8,8 +8,10 @@ $white: #ffffff !default;
$gray-200: #e9ecef !default;
$gray-100: #f8f9fa !default;
$gray-900: #212529 !default;
+// Pending SCSS change until Charles clears it with us
+// $link-color: theme-override-value($theme-name, "link-color", $primary) !default;
+//
$link-color: $primary !default;
-
$link-color: if(
$link-color == $blue,
theme-override-value($theme-name, "link-color", $link-color),
diff --git a/src/resources/formats/html/bootstrap/dist/scss/_reboot.scss b/src/resources/formats/html/bootstrap/dist/scss/_reboot.scss
index 017316b01ea..93a7d8cc3ea 100644
--- a/src/resources/formats/html/bootstrap/dist/scss/_reboot.scss
+++ b/src/resources/formats/html/bootstrap/dist/scss/_reboot.scss
@@ -305,6 +305,7 @@ pre {
@include font-size($code-font-size);
color: $pre-color;
background-color: $pre-bg;
+ line-height: $pre-line-height;
padding: $spacer / 2;
border: $border-width solid var(--#{$prefix}border-color, $border-color);
@include border-radius($border-radius);
diff --git a/src/resources/formats/html/bootstrap/dist/scss/_variables.scss b/src/resources/formats/html/bootstrap/dist/scss/_variables.scss
index 634526d6dc6..ffda0d61d65 100644
--- a/src/resources/formats/html/bootstrap/dist/scss/_variables.scss
+++ b/src/resources/formats/html/bootstrap/dist/scss/_variables.scss
@@ -1773,3 +1773,4 @@ $nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, remo
$pre-bg: $code-bg !default;
$pre-color: $body-emphasis-color !default;
+$pre-line-height: $line-height-base !default;
\ No newline at end of file
diff --git a/src/resources/formats/html/bootstrap/themes/cerulean.scss b/src/resources/formats/html/bootstrap/themes/cerulean.scss
index 170861d3cd5..50113ef30d1 100644
--- a/src/resources/formats/html/bootstrap/themes/cerulean.scss
+++ b/src/resources/formats/html/bootstrap/themes/cerulean.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "cerulean (builtin theme)" }
$theme: "cerulean" !default;
@@ -146,3 +147,4 @@ $text-shadow: 0 1px 0 rgba(0, 0, 0, .05) !default;
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/cosmo.scss b/src/resources/formats/html/bootstrap/themes/cosmo.scss
index 7ef7b1080fc..d4dd6c9ad04 100644
--- a/src/resources/formats/html/bootstrap/themes/cosmo.scss
+++ b/src/resources/formats/html/bootstrap/themes/cosmo.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "cosmo (builtin theme)" }
$theme: "cosmo" !default;
@@ -105,3 +106,4 @@ body {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/cyborg.scss b/src/resources/formats/html/bootstrap/themes/cyborg.scss
index 6a1506c438d..4431e4e1e26 100644
--- a/src/resources/formats/html/bootstrap/themes/cyborg.scss
+++ b/src/resources/formats/html/bootstrap/themes/cyborg.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "cyborg (builtin theme)" }
$theme: "cyborg" !default;
@@ -339,3 +340,4 @@ legend {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/darkly.scss b/src/resources/formats/html/bootstrap/themes/darkly.scss
index f14d9602955..acfd9dbebec 100644
--- a/src/resources/formats/html/bootstrap/themes/darkly.scss
+++ b/src/resources/formats/html/bootstrap/themes/darkly.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "darkly (builtin theme)" }
$theme: "darkly" !default;
@@ -272,3 +273,4 @@ $web-font-path: "https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/flatly.scss b/src/resources/formats/html/bootstrap/themes/flatly.scss
index 13587d3b526..24a3b08e369 100644
--- a/src/resources/formats/html/bootstrap/themes/flatly.scss
+++ b/src/resources/formats/html/bootstrap/themes/flatly.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "flatly (builtin theme)" }
$theme: "flatly" !default;
@@ -209,3 +210,4 @@ $web-font-path: "https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/journal.scss b/src/resources/formats/html/bootstrap/themes/journal.scss
index aa5fdfd68c9..e65567ed979 100644
--- a/src/resources/formats/html/bootstrap/themes/journal.scss
+++ b/src/resources/formats/html/bootstrap/themes/journal.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "journal (builtin theme)" }
$theme: "journal" !default;
@@ -106,3 +107,4 @@ $web-font-path: "https://fonts.googleapis.com/css2?family=News+Cycle:wght@400;70
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/litera.scss b/src/resources/formats/html/bootstrap/themes/litera.scss
index 72414556cc5..0cb7977e2c9 100644
--- a/src/resources/formats/html/bootstrap/themes/litera.scss
+++ b/src/resources/formats/html/bootstrap/themes/litera.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "litera (builtin theme)" }
$theme: "litera" !default;
@@ -195,3 +196,4 @@ table,
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/lumen.scss b/src/resources/formats/html/bootstrap/themes/lumen.scss
index b8bab78a171..0a199a60a18 100644
--- a/src/resources/formats/html/bootstrap/themes/lumen.scss
+++ b/src/resources/formats/html/bootstrap/themes/lumen.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "lumen (builtin theme)" }
$theme: "lumen" !default;
@@ -430,3 +431,4 @@ a.list-group-item {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/lux.scss b/src/resources/formats/html/bootstrap/themes/lux.scss
index 00625f9cde0..63984591fda 100644
--- a/src/resources/formats/html/bootstrap/themes/lux.scss
+++ b/src/resources/formats/html/bootstrap/themes/lux.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "lux (builtin theme)" }
$theme: "lux" !default;
@@ -277,3 +278,4 @@ th {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/materia.scss b/src/resources/formats/html/bootstrap/themes/materia.scss
index 1b8a3da56d5..e06b8e22c2a 100644
--- a/src/resources/formats/html/bootstrap/themes/materia.scss
+++ b/src/resources/formats/html/bootstrap/themes/materia.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "materia (builtin theme)" }
$theme: "materia" !default;
@@ -775,3 +776,4 @@ select.form-control {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/minty.scss b/src/resources/formats/html/bootstrap/themes/minty.scss
index 84789a83501..7ef63dac2cf 100644
--- a/src/resources/formats/html/bootstrap/themes/minty.scss
+++ b/src/resources/formats/html/bootstrap/themes/minty.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "minty (builtin theme)" }
$theme: "minty" !default;
@@ -186,3 +187,4 @@ legend {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/morph.scss b/src/resources/formats/html/bootstrap/themes/morph.scss
index ed2efcdbc4e..f912cf74d20 100644
--- a/src/resources/formats/html/bootstrap/themes/morph.scss
+++ b/src/resources/formats/html/bootstrap/themes/morph.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "morph (builtin theme)" }
$theme: "morph" !default;
@@ -717,3 +718,4 @@ $btn-box-shadow-inset: inset 2px 3px 6px rgba($black, .2), inset -3px -2px 6px r
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/pulse.scss b/src/resources/formats/html/bootstrap/themes/pulse.scss
index ec435be9c2e..bcdaab5f994 100644
--- a/src/resources/formats/html/bootstrap/themes/pulse.scss
+++ b/src/resources/formats/html/bootstrap/themes/pulse.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "pulse (builtin theme)" }
$theme: "pulse" !default;
@@ -237,3 +238,4 @@ $list-group-disabled-color: lighten($list-group-bg, 30%) !default;
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/quartz.scss b/src/resources/formats/html/bootstrap/themes/quartz.scss
index 8b6190fc779..38246bb2309 100644
--- a/src/resources/formats/html/bootstrap/themes/quartz.scss
+++ b/src/resources/formats/html/bootstrap/themes/quartz.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "quartz (builtin theme)" }
$theme: "quartz" !default;
@@ -537,3 +538,4 @@ body {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/sandstone.scss b/src/resources/formats/html/bootstrap/themes/sandstone.scss
index c97694ed581..b2820c8297a 100644
--- a/src/resources/formats/html/bootstrap/themes/sandstone.scss
+++ b/src/resources/formats/html/bootstrap/themes/sandstone.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "sandstone (builtin theme)" }
$theme: "sandstone" !default;
@@ -368,3 +369,4 @@ input,
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/simplex.scss b/src/resources/formats/html/bootstrap/themes/simplex.scss
index a4bc7272fed..f5041499827 100644
--- a/src/resources/formats/html/bootstrap/themes/simplex.scss
+++ b/src/resources/formats/html/bootstrap/themes/simplex.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "simplex (builtin theme)" }
$theme: "simplex" !default;
@@ -243,3 +244,4 @@ label {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/sketchy.scss b/src/resources/formats/html/bootstrap/themes/sketchy.scss
index 0d01a32a675..c62f8be196c 100644
--- a/src/resources/formats/html/bootstrap/themes/sketchy.scss
+++ b/src/resources/formats/html/bootstrap/themes/sketchy.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "sketchy (builtin theme)" }
$theme: "sketchy" !default;
@@ -658,3 +659,4 @@ pre {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/slate.scss b/src/resources/formats/html/bootstrap/themes/slate.scss
index a9f1518ad1d..f3e29b90c5a 100644
--- a/src/resources/formats/html/bootstrap/themes/slate.scss
+++ b/src/resources/formats/html/bootstrap/themes/slate.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "slate (builtin theme)" }
$theme: "slate" !default;
@@ -530,3 +531,4 @@ legend {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/solar.scss b/src/resources/formats/html/bootstrap/themes/solar.scss
index f1ae9712703..399968f744b 100644
--- a/src/resources/formats/html/bootstrap/themes/solar.scss
+++ b/src/resources/formats/html/bootstrap/themes/solar.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "solar (builtin theme)" }
$theme: "solar" !default;
@@ -257,3 +258,4 @@ $web-font-path: "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@4
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/spacelab.scss b/src/resources/formats/html/bootstrap/themes/spacelab.scss
index eb22749cb63..1ca53390605 100644
--- a/src/resources/formats/html/bootstrap/themes/spacelab.scss
+++ b/src/resources/formats/html/bootstrap/themes/spacelab.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "spacelab (builtin theme)" }
$theme: "spacelab" !default;
@@ -157,3 +158,4 @@ $web-font-path: "https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/superhero.scss b/src/resources/formats/html/bootstrap/themes/superhero.scss
index 17070657623..02642a551eb 100644
--- a/src/resources/formats/html/bootstrap/themes/superhero.scss
+++ b/src/resources/formats/html/bootstrap/themes/superhero.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "superhero (builtin theme)" }
$theme: "superhero" !default;
@@ -350,3 +351,4 @@ label,
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/united.scss b/src/resources/formats/html/bootstrap/themes/united.scss
index 8de77534eda..aa3a21212cf 100644
--- a/src/resources/formats/html/bootstrap/themes/united.scss
+++ b/src/resources/formats/html/bootstrap/themes/united.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "united (builtin theme)" }
$theme: "united" !default;
@@ -75,3 +76,4 @@ $web-font-path: "https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;700&di
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/vapor.scss b/src/resources/formats/html/bootstrap/themes/vapor.scss
index 8f98e4944b0..02611773b25 100644
--- a/src/resources/formats/html/bootstrap/themes/vapor.scss
+++ b/src/resources/formats/html/bootstrap/themes/vapor.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "vapor (builtin theme)" }
$theme: "vapor" !default;
@@ -502,3 +503,4 @@ legend {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/yeti.scss b/src/resources/formats/html/bootstrap/themes/yeti.scss
index 672927852bb..11f8947ea1d 100644
--- a/src/resources/formats/html/bootstrap/themes/yeti.scss
+++ b/src/resources/formats/html/bootstrap/themes/yeti.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "yeti (builtin theme)" }
$theme: "yeti" !default;
@@ -450,3 +451,4 @@ label,
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bootstrap/themes/zephyr.scss b/src/resources/formats/html/bootstrap/themes/zephyr.scss
index 5b4644332db..39e3905b046 100644
--- a/src/resources/formats/html/bootstrap/themes/zephyr.scss
+++ b/src/resources/formats/html/bootstrap/themes/zephyr.scss
@@ -1,4 +1,5 @@
/*-- scss:defaults --*/
+// quarto-scss-analysis-annotation { "origin": "zephyr (builtin theme)" }
$theme: "zephyr" !default;
@@ -367,3 +368,4 @@ thead th {
}
+// quarto-scss-analysis-annotation { "origin": null }
diff --git a/src/resources/formats/html/bslib/components/scss/sidebar.scss b/src/resources/formats/html/bslib/components/scss/sidebar.scss
index 001d04647f4..69ef62789e7 100644
--- a/src/resources/formats/html/bslib/components/scss/sidebar.scss
+++ b/src/resources/formats/html/bslib/components/scss/sidebar.scss
@@ -279,7 +279,7 @@ $bslib-sidebar-column-sidebar: Min(calc(100% - var(--bslib-sidebar-icon-size)),
&, &.sidebar-right {
// Remove sidebar borders in mobile view (except always-open, added below)
- > .sidebar { border: none }
+ > .sidebar { border: none; }
// Main area takes up entire layout area to avoid layout shift when
// sidebar is expanded as an overlay.
@@ -332,7 +332,7 @@ $bslib-sidebar-column-sidebar: Min(calc(100% - var(--bslib-sidebar-icon-size)),
// Make main contents transparent while sidebar is expanded
> .main {
opacity: 0;
- transition: opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)
+ transition: opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);
}
&.sidebar-collapsed > .main {
opacity: 1;
diff --git a/src/resources/formats/html/bslib/components/scss/value_box.scss b/src/resources/formats/html/bslib/components/scss/value_box.scss
index 787fd7bdccc..05e580f1a15 100644
--- a/src/resources/formats/html/bslib/components/scss/value_box.scss
+++ b/src/resources/formats/html/bslib/components/scss/value_box.scss
@@ -109,7 +109,7 @@ $bslib-value-box-horizontal-break-point: 300px;
@include bootstrap-heading-font-and-spacing($h6-font-size);
// add a non-breaking space to ensure it's not 0 height
&:empty::after {
- content: '\00a0 '
+ content: '\00a0 ';
}
}
@@ -117,7 +117,7 @@ $bslib-value-box-horizontal-break-point: 300px;
@include bootstrap-heading-font-and-spacing($h2-font-size);
// add a non-breaking space to ensure it's not 0 height
&:empty::after {
- content: '\00a0 '
+ content: '\00a0 ';
}
}
diff --git a/src/resources/formats/revealjs/quarto.scss b/src/resources/formats/revealjs/quarto.scss
index b5ea1419cc9..fc26aba3c87 100644
--- a/src/resources/formats/revealjs/quarto.scss
+++ b/src/resources/formats/revealjs/quarto.scss
@@ -291,6 +291,7 @@ div.reveal div.slides section.quarto-title-block {
border: none;
margin: 0;
font-size: $code-block-font-size;
+ line-height: $code-block-line-height;
}
// Inside code-file-name div, we want to use the same background color as decorated codeblock header
diff --git a/src/resources/schema/definitions.yml b/src/resources/schema/definitions.yml
index 83badc74640..8c87accb48a 100644
--- a/src/resources/schema/definitions.yml
+++ b/src/resources/schema/definitions.yml
@@ -2781,18 +2781,44 @@
- id: brand-font-with
description: Font files and definitions for the brand.
object:
- closed: false
+ additionalProperties:
+ ref: brand-font
- id: brand-font
description: Font files and definitions for the brand.
anyOf:
- ref: brand-font-google
+ - ref: brand-font-bunny
- ref: brand-font-file
- ref: brand-font-family
- id: brand-font-weight
description: A font weight.
- enum: [100, 200, 300, 400, 500, 600, 700, 800, 900]
+ enum:
+ [
+ 100,
+ 200,
+ 300,
+ 400,
+ 500,
+ 600,
+ 700,
+ 800,
+ 900,
+ thin,
+ extra-light,
+ ultra-light,
+ light,
+ normal,
+ regular,
+ medium,
+ semi-bold,
+ demi-bold,
+ bold,
+ extra-bold,
+ ultra-bold,
+ black,
+ ]
default: 400
- id: brand-font-style
@@ -2800,38 +2826,51 @@
enum: [normal, italic]
default: normal
+- id: brand-font-common
+ schema:
+ anyOf:
+ - string
+ - object:
+ closed: true
+ properties:
+ family:
+ description: The font family name, which must match the name of the font on the foundry website.
+ schema: string
+ weight:
+ description: The font weights to include.
+ maybeArrayOf:
+ ref: brand-font-weight
+ default: [400, 700]
+ style:
+ description: The font styles to include.
+ maybeArrayOf:
+ ref: brand-font-style
+ default: [normal, italic]
+ display:
+ description: >
+ The font display method, determines how a font face is font face is shown
+ depending on its download status and readiness for use.
+ enum: [auto, block, swap, fallback, optional]
+ default: swap
+
- id: brand-font-google
- description: A Google Font definition.
+ description: A font definition from Google Fonts.
object:
closed: true
properties:
google:
- anyOf:
- - string
- - object:
- closed: true
- properties:
- family:
- description: The font family name, which must match the name of the font on Google Fonts.
- schema: string
- weight:
- description: The font weights to include.
- maybeArrayOf:
- ref: brand-font-weight
- default: [400, 700]
- style:
- description: The font styles to include.
- maybeArrayOf:
- ref: brand-font-style
- default: [normal, italic]
- display:
- description: >
- The font display method, determines how a font face is font face is shown
- depending on its download status and readiness for use.
- enum: [auto, block, swap, fallback, optional]
- default: swap
+ ref: brand-font-common
required: [google]
+- id: brand-font-bunny
+ description: A font definition from fonts.bunny.net.
+ object:
+ closed: true
+ properties:
+ bunny:
+ ref: brand-font-common
+ required: [bunny]
+
- id: brand-font-file
description: A method for providing font files directly, either locally or from an online location.
object:
diff --git a/src/resources/schema/json-schemas.json b/src/resources/schema/json-schemas.json
new file mode 100644
index 00000000000..47364a5732d
--- /dev/null
+++ b/src/resources/schema/json-schemas.json
@@ -0,0 +1,3818 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$defs": {
+ "Date": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "value": {
+ "type": "string"
+ },
+ "format": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "MathMethods": {
+ "enum": {
+ "values": [
+ "plain",
+ "webtex",
+ "gladtex",
+ "mathml",
+ "mathjax",
+ "katex"
+ ]
+ }
+ },
+ "PandocFormatRequestHeaders": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "PandocFormatOutputFile": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "enum": {
+ "values": [
+ null
+ ],
+ "hidden": true
+ }
+ }
+ ]
+ },
+ "PandocFormatFilters": {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "at": {
+ "enum": [
+ "pre-ast",
+ "post-ast",
+ "pre-quarto",
+ "post-quarto",
+ "pre-render",
+ "post-render"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "enum": [
+ "citeproc"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "additionalProperties": false
+ }
+ }
+ ]
+ }
+ },
+ "PandocShortcodes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "PageColumn": {
+ "enum": [
+ "body",
+ "body-outset",
+ "body-outset-left",
+ "body-outset-right",
+ "page",
+ "page-left",
+ "page-right",
+ "page-inset-left",
+ "page-inset-right",
+ "screen",
+ "screen-left",
+ "screen-right",
+ "screen-inset",
+ "screen-inset-shaded",
+ "screen-inset-left",
+ "screen-inset-right",
+ "margin"
+ ]
+ },
+ "ContentsAuto": {
+ "object": {
+ "properties": {
+ "auto": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ "NavigationItem": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/NavigationItemObject"
+ }
+ ]
+ },
+ "NavigationItemObject": {
+ "object": {
+ "properties": {
+ "aria-label": {
+ "type": "string"
+ },
+ "file": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "icon": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "menu": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItem"
+ }
+ },
+ "text": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "rel": {
+ "type": "string"
+ },
+ "target": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "GiscusThemes": {
+ "enum": {
+ "values": [
+ "light",
+ "light_high_contrast",
+ "light_protanopia",
+ "light_tritanopia",
+ "dark",
+ "dark_high_contrast",
+ "dark_protanopia",
+ "dark_tritanopia",
+ "dark_dimmed",
+ "transparent_dark",
+ "cobalt",
+ "purple_dark",
+ "noborder_light",
+ "noborder_dark",
+ "noborder_gray",
+ "preferred_color_scheme"
+ ]
+ }
+ },
+ "Comments": {
+ "anyOf": [
+ {
+ "enum": [
+ false
+ ]
+ },
+ {
+ "object": {
+ "properties": {
+ "utterances": {
+ "object": {
+ "properties": {
+ "repo": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "theme": {
+ "type": "string"
+ },
+ "issue-term": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "giscus": {
+ "object": {
+ "properties": {
+ "repo": {
+ "type": "string"
+ },
+ "repo-id": {
+ "type": "string"
+ },
+ "category": {
+ "type": "string"
+ },
+ "category-id": {
+ "type": "string"
+ },
+ "mapping": {
+ "anyOf": [
+ {
+ "enum": [
+ "pathname",
+ "url",
+ "title",
+ "og:title"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "reactions-enabled": {
+ "type": "boolean"
+ },
+ "loading": {
+ "enum": [
+ "lazy"
+ ]
+ },
+ "input-position": {
+ "enum": [
+ "top",
+ "bottom"
+ ]
+ },
+ "theme": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/GiscusThemes"
+ },
+ {
+ "object": {
+ "properties": {
+ "light": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/GiscusThemes"
+ }
+ ]
+ },
+ "dark": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/GiscusThemes"
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ },
+ "language": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "hypothesis": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "object": {
+ "properties": {
+ "client-url": {
+ "type": "string"
+ },
+ "openSidebar": {
+ "type": "boolean"
+ },
+ "showHighlights": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "enum": [
+ "always",
+ "whenSidebarOpen",
+ "never"
+ ]
+ }
+ ]
+ },
+ "theme": {
+ "enum": [
+ "classic",
+ "clean"
+ ]
+ },
+ "enableExperimentalNewNoteButton": {
+ "type": "boolean"
+ },
+ "usernameUrl": {
+ "type": "string"
+ },
+ "services": {
+ "type": "array",
+ "items": {
+ "object": {
+ "properties": {
+ "apiUrl": {
+ "type": "string"
+ },
+ "authority": {
+ "type": "string"
+ },
+ "grantToken": {
+ "type": "string"
+ },
+ "allowLeavingGroups": {
+ "type": "boolean"
+ },
+ "enableShareLinks": {
+ "type": "boolean"
+ },
+ "groups": {
+ "anyOf": [
+ {
+ "enum": [
+ "$rpc:requestGroups"
+ ]
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "icon": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "branding": {
+ "object": {
+ "properties": {
+ "accentColor": {
+ "type": "string"
+ },
+ "appBackgroundColor": {
+ "type": "string"
+ },
+ "ctaBackgroundColor": {
+ "type": "string"
+ },
+ "selectionFontFamily": {
+ "type": "string"
+ },
+ "annotationFontFamily": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "externalContainerSelector": {
+ "type": "string"
+ },
+ "focus": {
+ "object": {
+ "properties": {
+ "user": {
+ "object": {
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "userid": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "requestConfigFromFrame": {
+ "object": {
+ "properties": {
+ "origin": {
+ "type": "string"
+ },
+ "ancestorLevel": {
+ "type": "number"
+ }
+ }
+ }
+ },
+ "assetRoot": {
+ "type": "string"
+ },
+ "sidebarAppUrl": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ },
+ "SocialMetadata": {
+ "object": {
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "image": {
+ "type": "string"
+ },
+ "image-alt": {
+ "type": "string"
+ },
+ "image-width": {
+ "type": "number"
+ },
+ "image-height": {
+ "type": "number"
+ }
+ }
+ }
+ },
+ "PageFooterRegion": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItem"
+ }
+ }
+ ]
+ },
+ "SidebarContents": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/ContentsAuto"
+ },
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/NavigationItem"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "section": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "enum": [
+ null
+ ]
+ }
+ ]
+ },
+ "contents": {
+ "$ref": "#/$defs/SidebarContents"
+ }
+ }
+ }
+ },
+ {
+ "$ref": "#/$defs/ContentsAuto"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "ProjectPreview": {
+ "object": {
+ "properties": {
+ "port": {
+ "type": "number"
+ },
+ "host": {
+ "type": "string"
+ },
+ "serve": {
+ "$ref": "#/$defs/ProjectServe"
+ },
+ "browser": {
+ "type": "boolean"
+ },
+ "watch-inputs": {
+ "type": "boolean"
+ },
+ "navigate": {
+ "type": "boolean"
+ },
+ "timeout": {
+ "type": "number"
+ }
+ }
+ }
+ },
+ "ProjectServe": {
+ "object": {
+ "properties": {
+ "cmd": {
+ "type": "string"
+ },
+ "args": {
+ "type": "string"
+ },
+ "env": {
+ "object": {
+ "properties": {}
+ }
+ },
+ "ready": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Publish": {
+ "object": {
+ "properties": {
+ "netlify": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/PublishRecord"
+ }
+ }
+ }
+ }
+ },
+ "PublishRecord": {
+ "object": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "TwitterCardConfig": {
+ "object": {
+ "properties": {
+ "card-style": {
+ "enum": [
+ "summary",
+ "summary_large_image"
+ ]
+ },
+ "creator": {
+ "type": "string"
+ },
+ "site": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "OpenGraphConfig": {
+ "object": {
+ "properties": {
+ "locale": {
+ "type": "string"
+ },
+ "site-name": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PageFooter": {
+ "object": {
+ "properties": {
+ "left": {
+ "$ref": "#/$defs/PageFooterRegion"
+ },
+ "right": {
+ "$ref": "#/$defs/PageFooterRegion"
+ },
+ "center": {
+ "$ref": "#/$defs/PageFooterRegion"
+ },
+ "border": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "background": {
+ "type": "string"
+ },
+ "foreground": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "BaseWebsite": {
+ "object": {
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "favicon": {
+ "type": "string"
+ },
+ "site-url": {
+ "type": "string"
+ },
+ "site-path": {
+ "type": "string"
+ },
+ "repo-url": {
+ "type": "string"
+ },
+ "repo-link-target": {
+ "type": "string"
+ },
+ "repo-link-rel": {
+ "type": "string"
+ },
+ "repo-subdir": {
+ "type": "string"
+ },
+ "repo-branch": {
+ "type": "string"
+ },
+ "issue-url": {
+ "type": "string"
+ },
+ "repo-actions": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "enum": [
+ "none",
+ "edit",
+ "source",
+ "issue"
+ ]
+ }
+ },
+ {
+ "enum": [
+ "none",
+ "edit",
+ "source",
+ "issue"
+ ]
+ }
+ ]
+ },
+ "reader-mode": {
+ "type": "boolean"
+ },
+ "google-analytics": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "tracking-id": {
+ "type": "string"
+ },
+ "storage": {
+ "enum": [
+ "cookies",
+ "none"
+ ]
+ },
+ "anonymize-ip": {
+ "type": "boolean"
+ },
+ "version": {
+ "enum": [
+ 3,
+ 4
+ ]
+ }
+ }
+ }
+ }
+ ]
+ },
+ "announcement": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "content": {
+ "type": "string"
+ },
+ "dismissable": {
+ "type": "boolean"
+ },
+ "icon": {
+ "type": "string"
+ },
+ "position": {
+ "enum": [
+ "above-navbar",
+ "below-navbar"
+ ]
+ },
+ "type": {
+ "enum": [
+ "primary",
+ "secondary",
+ "success",
+ "danger",
+ "warning",
+ "info",
+ "light",
+ "dark"
+ ]
+ }
+ }
+ }
+ }
+ ]
+ },
+ "cookie-consent": {
+ "anyOf": [
+ {
+ "enum": [
+ "express",
+ "implied"
+ ]
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "enum": [
+ "implied",
+ "express"
+ ]
+ },
+ "style": {
+ "enum": [
+ "simple",
+ "headline",
+ "interstitial",
+ "standalone"
+ ]
+ },
+ "palette": {
+ "enum": [
+ "light",
+ "dark"
+ ]
+ },
+ "policy-url": {
+ "type": "string"
+ },
+ "language": {
+ "type": "string"
+ },
+ "prefs-text": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "search": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "object": {
+ "properties": {
+ "location": {
+ "enum": [
+ "navbar",
+ "sidebar"
+ ]
+ },
+ "type": {
+ "enum": [
+ "overlay",
+ "textbox"
+ ]
+ },
+ "limit": {
+ "type": "number"
+ },
+ "collapse-after": {
+ "type": "number"
+ },
+ "copy-button": {
+ "type": "boolean"
+ },
+ "keyboard-shortcut": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "show-item-context": {
+ "anyOf": [
+ {
+ "enum": [
+ "tree",
+ "parent",
+ "root"
+ ]
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "algolia": {
+ "object": {
+ "properties": {
+ "index-name": {
+ "type": "string"
+ },
+ "application-id": {
+ "type": "string"
+ },
+ "search-only-api-key": {
+ "type": "string"
+ },
+ "analytics-events": {
+ "type": "boolean"
+ },
+ "show-logo": {
+ "type": "boolean"
+ },
+ "index-fields": {
+ "object": {
+ "properties": {
+ "href": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "section": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "params": {
+ "object": {
+ "properties": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "navbar": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "object": {
+ "properties": {
+ "title": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "logo": {
+ "type": "string"
+ },
+ "logo-alt": {
+ "type": "string"
+ },
+ "logo-href": {
+ "type": "string"
+ },
+ "background": {
+ "anyOf": [
+ {
+ "enum": [
+ "primary",
+ "secondary",
+ "success",
+ "danger",
+ "warning",
+ "info",
+ "light",
+ "dark"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "foreground": {
+ "anyOf": [
+ {
+ "enum": [
+ "primary",
+ "secondary",
+ "success",
+ "danger",
+ "warning",
+ "info",
+ "light",
+ "dark"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "search": {
+ "type": "boolean"
+ },
+ "pinned": {
+ "type": "boolean"
+ },
+ "collapse": {
+ "type": "boolean"
+ },
+ "collapse-below": {
+ "enum": [
+ "sm",
+ "md",
+ "lg",
+ "xl",
+ "xxl"
+ ]
+ },
+ "left": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItem"
+ }
+ },
+ "right": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItem"
+ }
+ },
+ "toggle-position": {
+ "enum": [
+ "left",
+ "right"
+ ]
+ },
+ "tools-collapse": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "sidebar": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "object": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "title": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "logo": {
+ "type": "string"
+ },
+ "logo-alt": {
+ "type": "string"
+ },
+ "logo-href": {
+ "type": "string"
+ },
+ "search": {
+ "type": "boolean"
+ },
+ "tools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItemObject"
+ }
+ },
+ "contents": {
+ "$ref": "#/$defs/SidebarContents"
+ },
+ "style": {
+ "enum": [
+ "docked",
+ "floating"
+ ]
+ },
+ "background": {
+ "anyOf": [
+ {
+ "enum": [
+ "primary",
+ "secondary",
+ "success",
+ "danger",
+ "warning",
+ "info",
+ "light",
+ "dark"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "foreground": {
+ "anyOf": [
+ {
+ "enum": [
+ "primary",
+ "secondary",
+ "success",
+ "danger",
+ "warning",
+ "info",
+ "light",
+ "dark"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "border": {
+ "type": "boolean"
+ },
+ "alignment": {
+ "enum": [
+ "left",
+ "right",
+ "center"
+ ]
+ },
+ "collapse-level": {
+ "type": "number"
+ },
+ "pinned": {
+ "type": "boolean"
+ },
+ "header": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "footer": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ {
+ "object": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "title": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "logo": {
+ "type": "string"
+ },
+ "logo-alt": {
+ "type": "string"
+ },
+ "logo-href": {
+ "type": "string"
+ },
+ "search": {
+ "type": "boolean"
+ },
+ "tools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItemObject"
+ }
+ },
+ "contents": {
+ "$ref": "#/$defs/SidebarContents"
+ },
+ "style": {
+ "enum": [
+ "docked",
+ "floating"
+ ]
+ },
+ "background": {
+ "anyOf": [
+ {
+ "enum": [
+ "primary",
+ "secondary",
+ "success",
+ "danger",
+ "warning",
+ "info",
+ "light",
+ "dark"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "foreground": {
+ "anyOf": [
+ {
+ "enum": [
+ "primary",
+ "secondary",
+ "success",
+ "danger",
+ "warning",
+ "info",
+ "light",
+ "dark"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "border": {
+ "type": "boolean"
+ },
+ "alignment": {
+ "enum": [
+ "left",
+ "right",
+ "center"
+ ]
+ },
+ "collapse-level": {
+ "type": "number"
+ },
+ "pinned": {
+ "type": "boolean"
+ },
+ "header": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "footer": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "body-header": {
+ "type": "string"
+ },
+ "body-footer": {
+ "type": "string"
+ },
+ "margin-header": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "margin-footer": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "page-navigation": {
+ "type": "boolean"
+ },
+ "back-to-top-navigation": {
+ "type": "boolean"
+ },
+ "bread-crumbs": {
+ "type": "boolean"
+ },
+ "page-footer": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/PageFooter"
+ }
+ ]
+ },
+ "image": {
+ "type": "string"
+ },
+ "image-alt": {
+ "type": "string"
+ },
+ "comments": {
+ "$ref": "#/$defs/Comments"
+ },
+ "open-graph": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "$ref": "#/$defs/OpenGraphConfig"
+ }
+ ]
+ },
+ "twitter-card": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "$ref": "#/$defs/TwitterCardConfig"
+ }
+ ]
+ },
+ "other-links": {
+ "$ref": "#/$defs/OtherLinks"
+ },
+ "code-links": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "$ref": "#/$defs/CodeLinksSchema"
+ }
+ ]
+ },
+ "drafts": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "draft-mode": {
+ "enum": [
+ "visible",
+ "unlinked",
+ "gone"
+ ]
+ }
+ }
+ }
+ },
+ "BookSchema": {
+ "object": {
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "subtitle": {
+ "type": "string"
+ },
+ "author": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ }
+ },
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ }
+ ]
+ },
+ "date": {
+ "type": "string"
+ },
+ "date-format": {
+ "type": "string"
+ },
+ "abstract": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "chapters": {
+ "$ref": "#/$defs/ChapterList"
+ },
+ "appendices": {
+ "$ref": "#/$defs/ChapterList"
+ },
+ "references": {
+ "type": "string"
+ },
+ "output-file": {
+ "type": "string"
+ },
+ "cover-image": {
+ "type": "string"
+ },
+ "cover-image-alt": {
+ "type": "string"
+ },
+ "sharing": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "enum": [
+ "twitter",
+ "facebook",
+ "linkedin"
+ ]
+ }
+ },
+ {
+ "enum": [
+ "twitter",
+ "facebook",
+ "linkedin"
+ ]
+ }
+ ]
+ },
+ "downloads": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "enum": [
+ "pdf",
+ "epub",
+ "docx"
+ ]
+ }
+ },
+ {
+ "enum": [
+ "pdf",
+ "epub",
+ "docx"
+ ]
+ }
+ ]
+ },
+ "tools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItem"
+ }
+ },
+ "doi": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ChapterItem": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/NavigationItem"
+ },
+ {
+ "object": {
+ "properties": {
+ "part": {
+ "type": "string"
+ },
+ "chapters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItem"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "ChapterList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/ChapterItem"
+ }
+ },
+ "OtherLinks": {
+ "type": "array",
+ "items": {
+ "object": {
+ "properties": {
+ "text": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "icon": {
+ "type": "string"
+ },
+ "rel": {
+ "type": "string"
+ },
+ "target": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "CrossrefLabelsSchema": {
+ "type": "string"
+ },
+ "EpubContributor": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "object": {
+ "properties": {
+ "role": {
+ "type": "string"
+ },
+ "file-as": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ {
+ "object": {
+ "properties": {
+ "role": {
+ "type": "string"
+ },
+ "file-as": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "FormatLanguage": {
+ "object": {
+ "properties": {
+ "toc-title-document": {
+ "type": "string"
+ },
+ "toc-title-website": {
+ "type": "string"
+ },
+ "related-formats-title": {
+ "type": "string"
+ },
+ "related-notebooks-title": {
+ "type": "string"
+ },
+ "callout-tip-title": {
+ "type": "string"
+ },
+ "callout-note-title": {
+ "type": "string"
+ },
+ "callout-warning-title": {
+ "type": "string"
+ },
+ "callout-important-title": {
+ "type": "string"
+ },
+ "callout-caution-title": {
+ "type": "string"
+ },
+ "section-title-abstract": {
+ "type": "string"
+ },
+ "section-title-footnotes": {
+ "type": "string"
+ },
+ "section-title-appendices": {
+ "type": "string"
+ },
+ "code-summary": {
+ "type": "string"
+ },
+ "code-tools-menu-caption": {
+ "type": "string"
+ },
+ "code-tools-show-all-code": {
+ "type": "string"
+ },
+ "code-tools-hide-all-code": {
+ "type": "string"
+ },
+ "code-tools-view-source": {
+ "type": "string"
+ },
+ "code-tools-source-code": {
+ "type": "string"
+ },
+ "search-no-results-text": {
+ "type": "string"
+ },
+ "copy-button-tooltip": {
+ "type": "string"
+ },
+ "copy-button-tooltip-success": {
+ "type": "string"
+ },
+ "repo-action-links-edit": {
+ "type": "string"
+ },
+ "repo-action-links-source": {
+ "type": "string"
+ },
+ "repo-action-links-issue": {
+ "type": "string"
+ },
+ "search-matching-documents-text": {
+ "type": "string"
+ },
+ "search-copy-link-title": {
+ "type": "string"
+ },
+ "search-hide-matches-text": {
+ "type": "string"
+ },
+ "search-more-match-text": {
+ "type": "string"
+ },
+ "search-more-matches-text": {
+ "type": "string"
+ },
+ "search-clear-button-title": {
+ "type": "string"
+ },
+ "search-text-placeholder": {
+ "type": "string"
+ },
+ "search-detached-cancel-button-title": {
+ "type": "string"
+ },
+ "search-submit-button-title": {
+ "type": "string"
+ },
+ "crossref-fig-title": {
+ "type": "string"
+ },
+ "crossref-tbl-title": {
+ "type": "string"
+ },
+ "crossref-lst-title": {
+ "type": "string"
+ },
+ "crossref-thm-title": {
+ "type": "string"
+ },
+ "crossref-lem-title": {
+ "type": "string"
+ },
+ "crossref-cor-title": {
+ "type": "string"
+ },
+ "crossref-prp-title": {
+ "type": "string"
+ },
+ "crossref-cnj-title": {
+ "type": "string"
+ },
+ "crossref-def-title": {
+ "type": "string"
+ },
+ "crossref-exm-title": {
+ "type": "string"
+ },
+ "crossref-exr-title": {
+ "type": "string"
+ },
+ "crossref-fig-prefix": {
+ "type": "string"
+ },
+ "crossref-tbl-prefix": {
+ "type": "string"
+ },
+ "crossref-lst-prefix": {
+ "type": "string"
+ },
+ "crossref-ch-prefix": {
+ "type": "string"
+ },
+ "crossref-apx-prefix": {
+ "type": "string"
+ },
+ "crossref-sec-prefix": {
+ "type": "string"
+ },
+ "crossref-eq-prefix": {
+ "type": "string"
+ },
+ "crossref-thm-prefix": {
+ "type": "string"
+ },
+ "crossref-lem-prefix": {
+ "type": "string"
+ },
+ "crossref-cor-prefix": {
+ "type": "string"
+ },
+ "crossref-prp-prefix": {
+ "type": "string"
+ },
+ "crossref-cnj-prefix": {
+ "type": "string"
+ },
+ "crossref-def-prefix": {
+ "type": "string"
+ },
+ "crossref-exm-prefix": {
+ "type": "string"
+ },
+ "crossref-exr-prefix": {
+ "type": "string"
+ },
+ "crossref-lof-title": {
+ "type": "string"
+ },
+ "crossref-lot-title": {
+ "type": "string"
+ },
+ "crossref-lol-title": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "WebsiteAbout": {
+ "object": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "template": {
+ "anyOf": [
+ {
+ "enum": [
+ "jolla",
+ "trestles",
+ "solana",
+ "marquee",
+ "broadside"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "image": {
+ "type": "string"
+ },
+ "image-alt": {
+ "type": "string"
+ },
+ "image-title": {
+ "type": "string"
+ },
+ "image-width": {
+ "type": "string"
+ },
+ "image-shape": {
+ "enum": [
+ "rectangle",
+ "round",
+ "rounded"
+ ]
+ },
+ "links": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/NavigationItem"
+ }
+ }
+ }
+ }
+ },
+ "WebsiteListing": {
+ "object": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "default",
+ "table",
+ "grid",
+ "custom"
+ ]
+ },
+ "contents": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/WebsiteListingContentsObject"
+ }
+ ]
+ }
+ },
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/WebsiteListingContentsObject"
+ }
+ ]
+ }
+ ]
+ },
+ "sort": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ ]
+ },
+ "max-items": {
+ "type": "number"
+ },
+ "page-size": {
+ "type": "number"
+ },
+ "sort-ui": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "filter-ui": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "categories": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "enum": [
+ "numbered",
+ "unnumbered",
+ "cloud"
+ ]
+ }
+ ]
+ },
+ "feed": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "object": {
+ "properties": {
+ "items": {
+ "type": "number"
+ },
+ "type": {
+ "enum": [
+ "full",
+ "partial",
+ "metadata"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "image": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "language": {
+ "type": "string"
+ },
+ "categories": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "xml-stylesheet": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "date-format": {
+ "type": "string"
+ },
+ "max-description-length": {
+ "type": "number"
+ },
+ "image-placeholder": {
+ "type": "string"
+ },
+ "image-lazy-loading": {
+ "type": "boolean"
+ },
+ "image-align": {
+ "enum": [
+ "left",
+ "right"
+ ]
+ },
+ "image-height": {
+ "type": "string"
+ },
+ "grid-columns": {
+ "type": "number"
+ },
+ "grid-item-border": {
+ "type": "boolean"
+ },
+ "grid-item-align": {
+ "enum": [
+ "left",
+ "right",
+ "center"
+ ]
+ },
+ "table-striped": {
+ "type": "boolean"
+ },
+ "table-hover": {
+ "type": "boolean"
+ },
+ "template": {
+ "type": "string"
+ },
+ "template-params": {
+ "type": "object"
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "field-display-names": {
+ "object": {
+ "properties": {}
+ }
+ },
+ "field-types": {
+ "object": {
+ "properties": {}
+ }
+ },
+ "field-links": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "field-required": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "exclude": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ {
+ "type": "object"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "WebsiteListingContentsObject": {
+ "object": {
+ "properties": {
+ "author": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "date": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "subtitle": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CslDate": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ {
+ "object": {
+ "properties": {
+ "year": {
+ "type": "number"
+ },
+ "month": {
+ "type": "number"
+ },
+ "day": {
+ "type": "number"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "CslPerson": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "object": {
+ "properties": {
+ "family-name": {
+ "type": "string"
+ },
+ "given-name": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ {
+ "object": {
+ "properties": {
+ "family-name": {
+ "type": "string"
+ },
+ "given-name": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "CslNumber": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "CslItemShared": {
+ "object": {
+ "properties": {
+ "abstract-url": {
+ "type": "string"
+ },
+ "accessed": {
+ "$ref": "#/$defs/CslDate"
+ },
+ "annote": {
+ "type": "string"
+ },
+ "archive": {
+ "type": "string"
+ },
+ "archive-collection": {
+ "type": "string"
+ },
+ "archive_collection": {
+ "type": "string"
+ },
+ "archive-location": {
+ "type": "string"
+ },
+ "archive_location": {
+ "type": "string"
+ },
+ "archive-place": {
+ "type": "string"
+ },
+ "authority": {
+ "type": "string"
+ },
+ "available-date": {
+ "$ref": "#/$defs/CslDate"
+ },
+ "call-number": {
+ "type": "string"
+ },
+ "chair": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "chapter-number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "citation-key": {
+ "type": "string"
+ },
+ "citation-label": {
+ "type": "string"
+ },
+ "citation-number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "collection-editor": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "collection-number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "collection-title": {
+ "type": "string"
+ },
+ "compiler": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "composer": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "container-author": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "container-title": {
+ "type": "string"
+ },
+ "container-title-short": {
+ "type": "string"
+ },
+ "contributor": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "curator": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "dimensions": {
+ "type": "string"
+ },
+ "director": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "division": {
+ "type": "string"
+ },
+ "DOI": {
+ "type": "string"
+ },
+ "edition": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "editor": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "editorial-director": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "editor-translator": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "event": {
+ "type": "string"
+ },
+ "event-date": {
+ "$ref": "#/$defs/CslDate"
+ },
+ "event-title": {
+ "type": "string"
+ },
+ "event-place": {
+ "type": "string"
+ },
+ "executive-producer": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "first-reference-note-number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "fulltext-url": {
+ "type": "string"
+ },
+ "genre": {
+ "type": "string"
+ },
+ "guest": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "host": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "illustrator": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "interviewer": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "isbn": {
+ "type": "string"
+ },
+ "ISBN": {
+ "type": "string"
+ },
+ "issn": {
+ "type": "string"
+ },
+ "ISSN": {
+ "type": "string"
+ },
+ "issue": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "issued": {
+ "$ref": "#/$defs/CslDate"
+ },
+ "jurisdiction": {
+ "type": "string"
+ },
+ "keyword": {
+ "type": "string"
+ },
+ "language": {
+ "type": "string"
+ },
+ "license": {
+ "type": "string"
+ },
+ "locator": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "medium": {
+ "type": "string"
+ },
+ "narrator": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "note": {
+ "type": "string"
+ },
+ "number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "number-of-pages": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "number-of-volumes": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "organizer": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "original-author": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "original-date": {
+ "$ref": "#/$defs/CslDate"
+ },
+ "original-publisher": {
+ "type": "string"
+ },
+ "original-publisher-place": {
+ "type": "string"
+ },
+ "original-title": {
+ "type": "string"
+ },
+ "page": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "page-first": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "page-last": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "part-number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "part-title": {
+ "type": "string"
+ },
+ "pdf-url": {
+ "type": "string"
+ },
+ "performer": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "pmcid": {
+ "type": "string"
+ },
+ "PMCID": {
+ "type": "string"
+ },
+ "pmid": {
+ "type": "string"
+ },
+ "PMID": {
+ "type": "string"
+ },
+ "printing-number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "producer": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "public-url": {
+ "type": "string"
+ },
+ "publisher": {
+ "type": "string"
+ },
+ "publisher-place": {
+ "type": "string"
+ },
+ "recipient": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "reviewed-author": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "reviewed-genre": {
+ "type": "string"
+ },
+ "reviewed-title": {
+ "type": "string"
+ },
+ "scale": {
+ "type": "string"
+ },
+ "script-writer": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "section": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "series-creator": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "source": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "submitted": {
+ "$ref": "#/$defs/CslDate"
+ },
+ "supplement-number": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "title-short": {
+ "type": "string"
+ },
+ "translator": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "type": {
+ "enum": [
+ "article",
+ "article-journal",
+ "article-magazine",
+ "article-newspaper",
+ "bill",
+ "book",
+ "broadcast",
+ "chapter",
+ "classic",
+ "collection",
+ "dataset",
+ "document",
+ "entry",
+ "entry-dictionary",
+ "entry-encyclopedia",
+ "event",
+ "figure",
+ "graphic",
+ "hearing",
+ "interview",
+ "legal_case",
+ "legislation",
+ "manuscript",
+ "map",
+ "motion_picture",
+ "musical_score",
+ "pamphlet",
+ "paper-conference",
+ "patent",
+ "performance",
+ "periodical",
+ "personal_communication",
+ "post",
+ "post-weblog",
+ "regulation",
+ "report",
+ "review",
+ "review-book",
+ "software",
+ "song",
+ "speech",
+ "standard",
+ "thesis",
+ "treaty",
+ "webpage"
+ ]
+ },
+ "url": {
+ "type": "string"
+ },
+ "URL": {
+ "type": "string"
+ },
+ "version": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "volume": {
+ "$ref": "#/$defs/CslNumber"
+ },
+ "volume-title": {
+ "type": "string"
+ },
+ "year-suffix": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CslItem": {
+ "object": {
+ "properties": {
+ "abstract": {
+ "type": "string"
+ },
+ "author": {
+ "$ref": "#/$defs/CslPerson"
+ },
+ "doi": {
+ "type": "string"
+ },
+ "references": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "CitationItem": {
+ "object": {
+ "properties": {
+ "article-id": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "elocation-id": {
+ "type": "string"
+ },
+ "eissn": {
+ "type": "string"
+ },
+ "pissn": {
+ "type": "string"
+ },
+ "art-access-id": {
+ "type": "string"
+ },
+ "publisher-location": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "categories": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "container-id": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "jats-type": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "SmartInclude": {
+ "anyOf": [
+ {
+ "object": {
+ "properties": {
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "text"
+ ],
+ "additionalProperties": false
+ }
+ },
+ {
+ "object": {
+ "properties": {
+ "file": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "file"
+ ],
+ "additionalProperties": false
+ }
+ }
+ ]
+ },
+ "Semver": {
+ "type": "string"
+ },
+ "QuartoDate": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "format": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "ProjectProfile": {
+ "object": {
+ "properties": {
+ "default": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "group": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "BadParseSchema": {
+ "object": {
+ "properties": {}
+ }
+ },
+ "QuartoDevSchema": {
+ "object": {
+ "properties": {
+ "_quarto": {
+ "object": {
+ "properties": {
+ "trace-filters": {
+ "type": "string"
+ },
+ "tests": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "NotebookViewSchema": {
+ "object": {
+ "properties": {
+ "notebook": {
+ "type": "string"
+ },
+ "title": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "url": {
+ "type": "string"
+ },
+ "download-url": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CodeLinksSchema": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "object": {
+ "properties": {
+ "icon": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "rel": {
+ "type": "string"
+ },
+ "target": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ {
+ "enum": [
+ "repo",
+ "binder",
+ "devcontainer"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "anyOf": [
+ {
+ "object": {
+ "properties": {
+ "icon": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "rel": {
+ "type": "string"
+ },
+ "target": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ {
+ "enum": [
+ "repo",
+ "binder",
+ "devcontainer"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "ManuscriptSchema": {
+ "object": {
+ "properties": {
+ "article": {
+ "type": "string"
+ },
+ "code-links": {
+ "$ref": "#/$defs/CodeLinksSchema"
+ },
+ "manuscript-url": {
+ "type": "string"
+ },
+ "meca-bundle": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "notebooks": {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/NotebookViewSchema"
+ }
+ ]
+ }
+ },
+ "resources": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "environment": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "BrandMeta": {
+ "object": {
+ "properties": {
+ "name": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "full": {
+ "type": "string"
+ },
+ "short": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "link": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "home": {
+ "type": "string"
+ },
+ "mastodon": {
+ "type": "string"
+ },
+ "github": {
+ "type": "string"
+ },
+ "linkedin": {
+ "type": "string"
+ },
+ "twitter": {
+ "type": "string"
+ },
+ "facebook": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "BrandStringLightDark": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "light": {
+ "type": "string"
+ },
+ "dark": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "BrandLogo": {
+ "object": {
+ "properties": {
+ "with": {
+ "object": {
+ "properties": {}
+ }
+ },
+ "small": {
+ "$ref": "#/$defs/BrandStringLightDark"
+ },
+ "medium": {
+ "$ref": "#/$defs/BrandStringLightDark"
+ },
+ "large": {
+ "$ref": "#/$defs/BrandStringLightDark"
+ }
+ }
+ }
+ },
+ "BrandNamedLogo": {
+ "enum": [
+ "small",
+ "medium",
+ "large"
+ ]
+ },
+ "BrandColorValue": {
+ "type": "string"
+ },
+ "LogoStringLayout": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "location": {
+ "type": "string"
+ },
+ "padding": {
+ "type": "string"
+ },
+ "width": {
+ "type": "string"
+ },
+ "src": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "BrandColor": {
+ "object": {
+ "properties": {
+ "with": {
+ "object": {
+ "properties": {}
+ }
+ },
+ "foreground": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "background": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "primary": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "secondary": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "tertiary": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "success": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "info": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "warning": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "danger": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "light": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "dark": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "emphasis": {
+ "$ref": "#/$defs/BrandColorValue"
+ },
+ "link": {
+ "$ref": "#/$defs/BrandColorValue"
+ }
+ }
+ }
+ },
+ "BrandMaybeNamedColor": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/BrandNamedThemeColor"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "BrandNamedThemeColor": {
+ "enum": [
+ "foreground",
+ "background",
+ "primary",
+ "secondary",
+ "tertiary",
+ "success",
+ "info",
+ "warning",
+ "danger",
+ "light",
+ "dark",
+ "emphasis",
+ "link"
+ ]
+ },
+ "BrandTypography": {
+ "object": {
+ "properties": {
+ "with": {
+ "$ref": "#/$defs/BrandFontWith"
+ },
+ "base": {
+ "$ref": "#/$defs/BrandTypographyOptions"
+ },
+ "headings": {
+ "$ref": "#/$defs/BrandTypographyOptionsNoSize"
+ },
+ "monospace": {
+ "$ref": "#/$defs/BrandTypographyOptions"
+ },
+ "emphasis": {
+ "object": {
+ "properties": {
+ "weight": {
+ "$ref": "#/$defs/BrandFontWeight"
+ },
+ "color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ },
+ "background-color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ }
+ }
+ }
+ },
+ "link": {
+ "object": {
+ "properties": {
+ "weight": {
+ "$ref": "#/$defs/BrandFontWeight"
+ },
+ "decoration": {
+ "type": "string"
+ },
+ "color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ },
+ "background-color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "BrandTypographyOptions": {
+ "object": {
+ "properties": {
+ "family": {
+ "type": "string"
+ },
+ "size": {
+ "type": "string"
+ },
+ "line-height": {
+ "type": "string"
+ },
+ "weight": {
+ "$ref": "#/$defs/BrandFontWeight"
+ },
+ "style": {
+ "$ref": "#/$defs/BrandFontStyle"
+ },
+ "color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ },
+ "background-color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ },
+ "files": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ "BrandNamedFont": {
+ "enum": [
+ "base",
+ "headings",
+ "monospace"
+ ]
+ },
+ "BrandTypographyOptionsNoSize": {
+ "object": {
+ "properties": {
+ "family": {
+ "type": "string"
+ },
+ "line-height": {
+ "type": "string"
+ },
+ "weight": {
+ "$ref": "#/$defs/BrandFontWeight"
+ },
+ "style": {
+ "$ref": "#/$defs/BrandFontStyle"
+ },
+ "color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ },
+ "background-color": {
+ "$ref": "#/$defs/BrandMaybeNamedColor"
+ }
+ }
+ }
+ },
+ "BrandFontWith": {
+ "object": {
+ "properties": {}
+ }
+ },
+ "BrandFont": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/BrandFontGoogle"
+ },
+ {
+ "$ref": "#/$defs/BrandFontBunny"
+ },
+ {
+ "$ref": "#/$defs/BrandFontFile"
+ },
+ {
+ "$ref": "#/$defs/BrandFontFamily"
+ }
+ ]
+ },
+ "BrandFontWeight": {
+ "enum": [
+ 100,
+ 200,
+ 300,
+ 400,
+ 500,
+ 600,
+ 700,
+ 800,
+ 900,
+ "thin",
+ "extra-light",
+ "ultra-light",
+ "light",
+ "normal",
+ "regular",
+ "medium",
+ "semi-bold",
+ "demi-bold",
+ "bold",
+ "extra-bold",
+ "ultra-bold",
+ "black"
+ ]
+ },
+ "BrandFontStyle": {
+ "enum": [
+ "normal",
+ "italic"
+ ]
+ },
+ "BrandFontCommon": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "object": {
+ "properties": {
+ "family": {
+ "type": "string"
+ },
+ "weight": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BrandFontWeight"
+ }
+ },
+ {
+ "$ref": "#/$defs/BrandFontWeight"
+ }
+ ]
+ },
+ "style": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BrandFontStyle"
+ }
+ },
+ {
+ "$ref": "#/$defs/BrandFontStyle"
+ }
+ ]
+ },
+ "display": {
+ "enum": [
+ "auto",
+ "block",
+ "swap",
+ "fallback",
+ "optional"
+ ]
+ }
+ }
+ }
+ }
+ ]
+ },
+ "BrandFontGoogle": {
+ "object": {
+ "properties": {
+ "google": {
+ "$ref": "#/$defs/BrandFontCommon"
+ }
+ }
+ }
+ },
+ "BrandFontBunny": {
+ "object": {
+ "properties": {
+ "bunny": {
+ "$ref": "#/$defs/BrandFontCommon"
+ }
+ }
+ }
+ },
+ "BrandFontFile": {
+ "object": {
+ "properties": {
+ "family": {
+ "type": "string"
+ },
+ "files": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ ]
+ },
+ "weight": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BrandFontWeight"
+ }
+ },
+ {
+ "$ref": "#/$defs/BrandFontWeight"
+ }
+ ]
+ },
+ "style": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BrandFontStyle"
+ }
+ },
+ {
+ "$ref": "#/$defs/BrandFontStyle"
+ }
+ ]
+ },
+ "display": {
+ "enum": [
+ "auto",
+ "block",
+ "swap",
+ "fallback",
+ "optional"
+ ]
+ }
+ }
+ }
+ },
+ "BrandFontFamily": {
+ "type": "string"
+ },
+ "Brand": {
+ "object": {
+ "properties": {
+ "meta": {
+ "$ref": "#/$defs/BrandMeta"
+ },
+ "logo": {
+ "$ref": "#/$defs/BrandLogo"
+ },
+ "color": {
+ "$ref": "#/$defs/BrandColor"
+ },
+ "typography": {
+ "$ref": "#/$defs/BrandTypography"
+ },
+ "defaults": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "ProjectConfig": {
+ "object": {
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "render": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "execute-dir": {
+ "enum": [
+ "file",
+ "project"
+ ]
+ },
+ "output-dir": {
+ "type": "string"
+ },
+ "lib-dir": {
+ "type": "string"
+ },
+ "resources": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "preview": {
+ "$ref": "#/$defs/ProjectPreview"
+ },
+ "pre-render": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "post-render": {
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "detect": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "BookProject": {
+ "object": {
+ "properties": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/resources/types/schema-types.ts b/src/resources/types/schema-types.ts
index 5bfac98b50f..0907dd07654 100644
--- a/src/resources/types/schema-types.ts
+++ b/src/resources/types/schema-types.ts
@@ -1287,7 +1287,7 @@ export type BrandLogo = {
large?: BrandStringLightDark;
medium?: BrandStringLightDark;
small?: BrandStringLightDark;
- with?: JsonObject;
+ with?: { [key: string]: BrandStringLightDark };
}; /* Provide definitions and defaults for brand's logo in various formats and sizes. */
export type BrandNamedLogo =
@@ -1317,8 +1317,9 @@ export type BrandColor = {
secondary?: BrandColorValue;
success?: BrandColorValue;
tertiary?: BrandColorValue;
- with?:
- JsonObject /* The brand's custom color palette. Any number of colors can be defined, each color having a custom name. */;
+ with?: {
+ [key: string]: BrandColorValue;
+ } /* The brand's custom color palette. Any number of colors can be defined, each color having a custom name. */;
warning?: BrandColorValue;
}; /* The brand's custom color palette and theme. */
@@ -1384,11 +1385,13 @@ export type BrandTypographyOptionsNoSize = {
weight?: BrandFontWeight;
}; /* Typographic options without a font size. */
-export type BrandFontWith =
- JsonObject; /* Font files and definitions for the brand. */
+export type BrandFontWith = {
+ [key: string]: BrandFont;
+}; /* Font files and definitions for the brand. */
export type BrandFont =
| BrandFontGoogle
+ | BrandFontBunny
| BrandFontFile
| BrandFontFamily; /* Font files and definitions for the brand. */
@@ -1401,23 +1404,42 @@ export type BrandFontWeight =
| 600
| 700
| 800
- | 900; /* A font weight. */
+ | 900
+ | "thin"
+ | "extra-light"
+ | "ultra-light"
+ | "light"
+ | "normal"
+ | "regular"
+ | "medium"
+ | "semi-bold"
+ | "demi-bold"
+ | "bold"
+ | "extra-bold"
+ | "ultra-bold"
+ | "black"; /* A font weight. */
export type BrandFontStyle = "normal" | "italic"; /* A font style. */
+export type BrandFontCommon = string | {
+ display?:
+ | "auto"
+ | "block"
+ | "swap"
+ | "fallback"
+ | "optional" /* The font display method, determines how a font face is font face is shown depending on its download status and readiness for use. */;
+ family?: string;
+ style?: MaybeArrayOf${snippet}
${v[1]}
`)
+ return {
+ name: left,
+ value: right
+ }
+ });
+ return Inputs.table(items, {
+ format: {
+ name: (x) => x,
+ value: (x) => x
+ }
+ });
+}
+```
+
+${selectedItems.length} SCSS color variables found.
diff --git a/tools/sass-variable-explainer/sass-analyzer/value-types.ts b/tools/sass-variable-explainer/sass-analyzer/value-types.ts
new file mode 100644
index 00000000000..662574d6905
--- /dev/null
+++ b/tools/sass-variable-explainer/sass-analyzer/value-types.ts
@@ -0,0 +1,134 @@
+import { withType } from "./ast-utils.ts";
+import { namedColors, units } from "./css-information.ts";
+
+const typedImmediateValues: Record