UNPKG

4.87 kBJSONView Raw
1{
2 "title": "ListItem",
3 "@id": "schema:ListItem",
4 "extends": "Thing",
5 "role": "tertiary",
6 "status": "stable",
7 "category": "prose",
8 "description": "A single item in a list.",
9 "properties": {
10 "type": {
11 "@id": "schema:type",
12 "description": "The name of the type.",
13 "type": "string",
14 "enum": [
15 "ListItem"
16 ],
17 "default": "ListItem",
18 "from": "Entity"
19 },
20 "id": {
21 "@id": "schema:id",
22 "description": "The identifier for this item.",
23 "type": "string",
24 "from": "Entity"
25 },
26 "meta": {
27 "@id": "stencila:meta",
28 "description": "Metadata associated with this item.",
29 "type": "object",
30 "from": "Entity"
31 },
32 "alternateNames": {
33 "@id": "schema:alternateName",
34 "description": "Alternate names (aliases) for the item.",
35 "type": "array",
36 "items": {
37 "type": "string"
38 },
39 "from": "Thing",
40 "isArray": true,
41 "isPlural": true,
42 "aliases": [
43 "alternateName"
44 ]
45 },
46 "description": {
47 "@id": "schema:description",
48 "description": "A description of the item.",
49 "$comment": "Allows for the description to be an array of nodes (e.g. an array of inline content,\nor a couple of paragraphs), or a string. The `minItems` restriction avoids a string\nbeing coerced into an array with a single string item.\n",
50 "anyOf": [
51 {
52 "type": "array",
53 "items": {
54 "$ref": "BlockContent.schema.json"
55 }
56 },
57 {
58 "type": "array",
59 "items": {
60 "$ref": "InlineContent.schema.json"
61 },
62 "minItems": 2
63 },
64 {
65 "type": "string"
66 }
67 ],
68 "from": "Thing"
69 },
70 "identifiers": {
71 "@id": "schema:identifier",
72 "description": "Any kind of identifier for any kind of Thing.",
73 "$comment": "Some identifiers have specific properties e.g the `issn` property for\nthe `Periodical` type. These should be used in preference to this\nproperty which is intended for identifiers that do not yet have a\nspecific property. Identifiers can be represented as strings, but\nusing a `PropertyValue` will usually be better because it allows\nfor `propertyID` (i.e. the type of identifier).\n",
74 "type": "array",
75 "items": {
76 "anyOf": [
77 {
78 "$ref": "PropertyValue.schema.json"
79 },
80 {
81 "type": "string"
82 }
83 ]
84 },
85 "from": "Thing",
86 "isArray": true,
87 "isPlural": true,
88 "aliases": [
89 "identifier"
90 ]
91 },
92 "images": {
93 "@id": "schema:image",
94 "description": "Images of the item.",
95 "type": "array",
96 "items": {
97 "anyOf": [
98 {
99 "$ref": "ImageObject.schema.json"
100 },
101 {
102 "type": "string",
103 "format": "uri"
104 }
105 ]
106 },
107 "from": "Thing",
108 "isArray": true,
109 "isPlural": true,
110 "aliases": [
111 "image"
112 ]
113 },
114 "name": {
115 "@id": "schema:name",
116 "description": "The name of the item.",
117 "type": "string",
118 "from": "Thing"
119 },
120 "url": {
121 "@id": "schema:url",
122 "description": "The URL of the item.",
123 "type": "string",
124 "format": "uri",
125 "from": "Thing"
126 },
127 "content": {
128 "@id": "stencila:content",
129 "description": "The content of the list item.",
130 "$comment": "Use either `content` or `item`, not both.",
131 "type": "array",
132 "items": {
133 "$ref": "Node.schema.json"
134 },
135 "from": "ListItem",
136 "isArray": true
137 },
138 "isChecked": {
139 "@id": "stencila:isChecked",
140 "description": "A flag to indicate if this list item is checked.",
141 "type": "boolean",
142 "default": false,
143 "from": "ListItem"
144 },
145 "item": {
146 "@id": "schema:item",
147 "description": "The item represented by this list item.",
148 "$comment": "Use either `item` or `content`, not both.",
149 "allOf": [
150 {
151 "$ref": "Node.schema.json"
152 }
153 ],
154 "from": "ListItem"
155 },
156 "position": {
157 "@id": "schema:position",
158 "description": "The position of the item in a series or sequence of items.",
159 "type": "number",
160 "from": "ListItem"
161 }
162 },
163 "file": "ListItem.schema.yaml",
164 "children": [],
165 "descendants": [],
166 "$schema": "http://json-schema.org/draft-07/schema#",
167 "$id": "https://schema.stenci.la/v0/ListItem.schema.json",
168 "source": "https://github.com/stencila/schema/blob/master/ListItem.schema.yaml",
169 "type": "object",
170 "additionalProperties": false,
171 "required": [
172 "type"
173 ],
174 "propertyAliases": {
175 "alternateName": "alternateNames",
176 "identifier": "identifiers",
177 "image": "images"
178 }
179}