Created
October 15, 2024 21:21
-
-
Save ganqqwerty/0795094e87eb6d44668d2ec78e11f515 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$id": "dictionaryTermBankV3", | |
"$schema": "http://json-schema.org/draft-07/schema#", | |
"definitions": { | |
"structuredContent": { | |
"oneOf": [ | |
{ | |
"type": "string", | |
"description": "Represents a text node." | |
}, | |
{ | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/structuredContent", | |
"description": "An array of child content." | |
} | |
}, | |
{ | |
"type": "object", | |
"oneOf": [ | |
{ | |
"type": "object", | |
"description": "Empty tags.", | |
"required": [ | |
"tag" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"tag": { | |
"type": "string", | |
"const": "br" | |
}, | |
"data": { | |
"$ref": "#/definitions/structuredContentData" | |
} | |
} | |
}, | |
{ | |
"type": "object", | |
"description": "Generic container tags.", | |
"required": [ | |
"tag" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"tag": { | |
"type": "string", | |
"enum": ["ruby", "rt", "rp", "table", "thead", "tbody", "tfoot", "tr"] | |
}, | |
"content": { | |
"$ref": "#/definitions/structuredContent" | |
}, | |
"data": { | |
"$ref": "#/definitions/structuredContentData" | |
}, | |
"lang": { | |
"type": "string", | |
"description": "Defines the language of an element in the format defined by RFC 5646." | |
} | |
} | |
}, | |
{ | |
"type": "object", | |
"description": "Table tags.", | |
"required": [ | |
"tag" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"tag": { | |
"type": "string", | |
"enum": ["td", "th"] | |
}, | |
"content": { | |
"$ref": "#/definitions/structuredContent" | |
}, | |
"data": { | |
"$ref": "#/definitions/structuredContentData" | |
}, | |
"colSpan": { | |
"type": "integer", | |
"minimum": 1 | |
}, | |
"rowSpan": { | |
"type": "integer", | |
"minimum": 1 | |
}, | |
"style": { | |
"$ref": "#/definitions/structuredContentStyle" | |
}, | |
"lang": { | |
"type": "string", | |
"description": "Defines the language of an element in the format defined by RFC 5646." | |
} | |
} | |
}, | |
{ | |
"type": "object", | |
"description": "Container tags supporting configurable styles.", | |
"required": [ | |
"tag" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"tag": { | |
"type": "string", | |
"enum": ["span", "div", "ol", "ul", "li", "details", "summary"] | |
}, | |
"content": { | |
"$ref": "#/definitions/structuredContent" | |
}, | |
"data": { | |
"$ref": "#/definitions/structuredContentData" | |
}, | |
"style": { | |
"$ref": "#/definitions/structuredContentStyle" | |
}, | |
"title": { | |
"type": "string", | |
"description": "Hover text for the element." | |
}, | |
"lang": { | |
"type": "string", | |
"description": "Defines the language of an element in the format defined by RFC 5646." | |
} | |
} | |
}, | |
{ | |
"type": "object", | |
"description": "Image tag.", | |
"required": [ | |
"tag", | |
"path" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"tag": { | |
"type": "string", | |
"const": "img" | |
}, | |
"data": { | |
"$ref": "#/definitions/structuredContentData" | |
}, | |
"path": { | |
"type": "string", | |
"description": "Path to the image file in the archive." | |
}, | |
"width": { | |
"type": "number", | |
"description": "Preferred width of the image.", | |
"minimum": 0 | |
}, | |
"height": { | |
"type": "number", | |
"description": "Preferred height of the image.", | |
"minimum": 0 | |
}, | |
"title": { | |
"type": "string", | |
"description": "Hover text for the image." | |
}, | |
"alt": { | |
"type": "string", | |
"description": "Alt text for the image." | |
}, | |
"description": { | |
"type": "string", | |
"description": "Description of the image." | |
}, | |
"pixelated": { | |
"type": "boolean", | |
"description": "Whether or not the image should appear pixelated at sizes larger than the image's native resolution.", | |
"default": false | |
}, | |
"imageRendering": { | |
"type": "string", | |
"description": "Controls how the image is rendered. The value of this field supersedes the pixelated field.", | |
"enum": ["auto", "pixelated", "crisp-edges"], | |
"default": "auto" | |
}, | |
"appearance": { | |
"type": "string", | |
"description": "Controls the appearance of the image. The \"monochrome\" value will mask the opaque parts of the image using the current text color.", | |
"enum": ["auto", "monochrome"], | |
"default": "auto" | |
}, | |
"background": { | |
"type": "boolean", | |
"description": "Whether or not a background color is displayed behind the image.", | |
"default": true | |
}, | |
"collapsed": { | |
"type": "boolean", | |
"description": "Whether or not the image is collapsed by default.", | |
"default": false | |
}, | |
"collapsible": { | |
"type": "boolean", | |
"description": "Whether or not the image can be collapsed.", | |
"default": false | |
}, | |
"verticalAlign": { | |
"type": "string", | |
"description": "The vertical alignment of the image.", | |
"enum": ["baseline", "sub", "super", "text-top", "text-bottom", "middle", "top", "bottom"] | |
}, | |
"border": { | |
"type": "string", | |
"description": "Shorthand for border width, style, and color." | |
}, | |
"borderRadius": { | |
"type": "string", | |
"description": "Roundness of the corners of the image's outer border edge." | |
}, | |
"sizeUnits": { | |
"type": "string", | |
"description": "The units for the width and height.", | |
"enum": ["px", "em"] | |
} | |
} | |
}, | |
{ | |
"type": "object", | |
"description": "Link tag.", | |
"required": [ | |
"tag", | |
"href" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"tag": { | |
"type": "string", | |
"const": "a" | |
}, | |
"content": { | |
"$ref": "#/definitions/structuredContent" | |
}, | |
"href": { | |
"type": "string", | |
"description": "The URL for the link. URLs starting with a ? are treated as internal links to other dictionary content.", | |
"pattern": "^(?:https?:|\\?)[\\w\\W]*" | |
}, | |
"lang": { | |
"type": "string", | |
"description": "Defines the language of an element in the format defined by RFC 5646." | |
} | |
} | |
} | |
] | |
} | |
] | |
}, | |
"structuredContentData": { | |
"type": "object", | |
"description": "Generic data attributes that should be added to the element.", | |
"additionalProperties": { | |
"type": "string" | |
} | |
}, | |
"structuredContentStyle": { | |
"type": "object", | |
"additionalProperties": false, | |
"properties": { | |
"fontStyle": { | |
"type": "string", | |
"enum": ["normal", "italic"], | |
"default": "normal" | |
}, | |
"fontWeight": { | |
"type": "string", | |
"enum": ["normal", "bold"], | |
"default": "normal" | |
}, | |
"fontSize": { | |
"type": "string", | |
"default": "medium" | |
}, | |
"color": { | |
"type": "string" | |
}, | |
"background": { | |
"type": "string" | |
}, | |
"backgroundColor": { | |
"type": "string" | |
}, | |
"textDecorationLine": { | |
"oneOf": [ | |
{ | |
"type": "string", | |
"enum": ["none", "underline", "overline", "line-through"], | |
"default": "none" | |
}, | |
{ | |
"type": "array", | |
"items": { | |
"type": "string", | |
"enum": ["underline", "overline", "line-through"], | |
"default": "none" | |
} | |
} | |
] | |
}, | |
"textDecorationStyle": { | |
"type": "string", | |
"enum": ["solid", "double", "dotted", "dashed", "wavy"], | |
"default": "solid" | |
}, | |
"textDecorationColor": { | |
"type": "string" | |
}, | |
"borderColor": { | |
"type": "string" | |
}, | |
"borderStyle": { | |
"type": "string" | |
}, | |
"borderRadius": { | |
"type": "string" | |
}, | |
"borderWidth": { | |
"type": "string" | |
}, | |
"clipPath": { | |
"type": "string" | |
}, | |
"verticalAlign": { | |
"type": "string", | |
"enum": ["baseline", "sub", "super", "text-top", "text-bottom", "middle", "top", "bottom"], | |
"default": "baseline" | |
}, | |
"textAlign": { | |
"type": "string", | |
"enum": ["start", "end", "left", "right", "center", "justify", "justify-all", "match-parent"], | |
"default": "start" | |
}, | |
"textEmphasis": { | |
"type": "string" | |
}, | |
"textShadow": { | |
"type": "string" | |
}, | |
"margin": { | |
"type": "string" | |
}, | |
"marginTop": { | |
"type": ["number", "string"], | |
"default": 0 | |
}, | |
"marginLeft": { | |
"type": ["number", "string"], | |
"default": 0 | |
}, | |
"marginRight": { | |
"type": ["number", "string"], | |
"default": 0 | |
}, | |
"marginBottom": { | |
"type": ["number", "string"], | |
"default": 0 | |
}, | |
"padding": { | |
"type": "string" | |
}, | |
"paddingTop": { | |
"type": "string" | |
}, | |
"paddingLeft": { | |
"type": "string" | |
}, | |
"paddingRight": { | |
"type": "string" | |
}, | |
"paddingBottom": { | |
"type": "string" | |
}, | |
"wordBreak": { | |
"type": "string", | |
"enum": ["normal", "break-all", "keep-all"], | |
"default": "normal" | |
}, | |
"whiteSpace": { | |
"type": "string", | |
"default": "normal" | |
}, | |
"cursor": { | |
"type": "string", | |
"default": "auto" | |
}, | |
"listStyleType": { | |
"type": "string", | |
"default": "disc" | |
} | |
} | |
} | |
}, | |
"type": "array", | |
"description": "Data file containing term information.", | |
"items": { | |
"type": "array", | |
"description": "Information about a single term.", | |
"minItems": 8, | |
"maxItems": 8, | |
"additionalItems": false, | |
"items": [ | |
{ | |
"type": "string", | |
"description": "The text for the term." | |
}, | |
{ | |
"type": "string", | |
"description": "Reading of the term, or an empty string if the reading is the same as the term." | |
}, | |
{ | |
"type": ["string", "null"], | |
"description": "String of space-separated tags for the definition. An empty string is treated as no tags." | |
}, | |
{ | |
"type": "string", | |
"description": "String of space-separated rule identifiers for the definition which is used to validate deinflection. An empty string should be used for words which aren't inflected." | |
}, | |
{ | |
"type": "number", | |
"description": "Score used to determine popularity. Negative values are more rare and positive values are more frequent. This score is also used to sort search results." | |
}, | |
{ | |
"type": "array", | |
"description": "Array of definitions for the term.", | |
"items": { | |
"oneOf": [ | |
{ | |
"type": "string", | |
"description": "Single definition for the term." | |
}, | |
{ | |
"type": "object", | |
"description": "Single detailed definition for the term.", | |
"required": [ | |
"type" | |
], | |
"properties": { | |
"type": { | |
"type": "string", | |
"description": "The type of the data for this definition.", | |
"enum": ["text", "image", "structured-content"] | |
} | |
}, | |
"oneOf": [ | |
{ | |
"required": [ | |
"type", | |
"text" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"type": { | |
"type": "string", | |
"const": "text" | |
}, | |
"text": { | |
"type": "string", | |
"description": "Single definition for the term." | |
} | |
} | |
}, | |
{ | |
"required": [ | |
"type", | |
"content" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"type": { | |
"type": "string", | |
"const": "structured-content" | |
}, | |
"content": { | |
"$ref": "#/definitions/structuredContent", | |
"description": "Single definition for the term using a structured content object." | |
} | |
} | |
}, | |
{ | |
"required": [ | |
"type", | |
"path" | |
], | |
"additionalProperties": false, | |
"properties": { | |
"type": { | |
"type": "string", | |
"const": "image" | |
}, | |
"path": { | |
"type": "string", | |
"description": "Path to the image file in the archive." | |
}, | |
"width": { | |
"type": "integer", | |
"description": "Preferred width of the image.", | |
"minimum": 1 | |
}, | |
"height": { | |
"type": "integer", | |
"description": "Preferred height of the image.", | |
"minimum": 1 | |
}, | |
"title": { | |
"type": "string", | |
"description": "Hover text for the image." | |
}, | |
"alt": { | |
"type": "string", | |
"description": "Alt text for the image." | |
}, | |
"description": { | |
"type": "string", | |
"description": "Description of the image." | |
}, | |
"pixelated": { | |
"type": "boolean", | |
"description": "Whether or not the image should appear pixelated at sizes larger than the image's native resolution.", | |
"default": false | |
}, | |
"imageRendering": { | |
"type": "string", | |
"description": "Controls how the image is rendered. The value of this field supersedes the pixelated field.", | |
"enum": ["auto", "pixelated", "crisp-edges"], | |
"default": "auto" | |
}, | |
"appearance": { | |
"type": "string", | |
"description": "Controls the appearance of the image. The \"monochrome\" value will mask the opaque parts of the image using the current text color.", | |
"enum": ["auto", "monochrome"], | |
"default": "auto" | |
}, | |
"background": { | |
"type": "boolean", | |
"description": "Whether or not a background color is displayed behind the image.", | |
"default": true | |
}, | |
"collapsed": { | |
"type": "boolean", | |
"description": "Whether or not the image is collapsed by default.", | |
"default": false | |
}, | |
"collapsible": { | |
"type": "boolean", | |
"description": "Whether or not the image can be collapsed.", | |
"default": true | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"type": "array", | |
"description": "Deinflection of the term to an uninflected term.", | |
"minItems": 2, | |
"maxItems": 2, | |
"items": [ | |
{ | |
"type": "string", | |
"description": "The uninflected term." | |
}, | |
{ | |
"type": "array", | |
"description": "A chain of inflection rules that produced the inflected term", | |
"items": { | |
"type": "string", | |
"description": "A single inflection rule." | |
} | |
} | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"type": "integer", | |
"description": "Sequence number for the term. Terms with the same sequence number can be shown together when the \"resultOutputMode\" option is set to \"merge\"." | |
}, | |
{ | |
"type": "string", | |
"description": "String of space-separated tags for the term. An empty string is treated as no tags." | |
} | |
] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment