+23
-3
lines changedFilter options
+23
-3
lines changed Original file line number Diff line number Diff line change
@@ -20,13 +20,26 @@ See [**nlcst**][nlcst] for more information on **retext** nodes,
20
20
[**mdast**][mdast] for information on **remark** nodes, and
21
21
[`hast#nodes`][hast-nodes] for information on **hast** nodes.
22
22
23
+
Subsets of Unist can define new properties on new nodes, and plug-ins
24
+
and utilities can define new [`data`][data] properties on nodes. But,
25
+
the values on those properties **must** be JSON values: `string`,
26
+
`number`, `object`, `array`, `true`, `false`, or `null`. This means
27
+
that the syntax tree should be able to be converted to and from JSON
28
+
and produce the same tree. For example, in JavaScript, a tree should
29
+
be able to be passed through `JSON.parse(JSON.stringify(tree))` and
30
+
result in the same values.
31
+
23
32
### `Node`
24
33
25
34
Node represents any unit in the Unist hierarchy. It is an abstract
26
35
class. Interfaces inheriting from **Node** must have a `type` property,
27
36
and may have `data` or `location` properties. `type`s are defined by
28
37
their namespace.
29
38
39
+
Subsets of Unist are allowed to define properties on interfaces which
40
+
subclass Unist’s abstract interfaces. For example, [mdast][] defines
41
+
a `link` node (subclassing [Parent][]) with a `url` property.
42
+
30
43
```idl
31
44
interface Node {
32
45
type: string;
@@ -37,9 +50,10 @@ interface Node {
37
50
38
51
#### `Data`
39
52
40
-
Data represents data associated with any node. Data is a scope for plug-ins
41
-
to store any information. Its only limitation being that each property should
42
-
by `stringify`able: not throw when passed to `JSON.stringify()`.
53
+
Data represents data associated with any node. `Data` is a scope for
54
+
plug-ins to store any information. For example, [`remark-html`][remark-html]
55
+
uses `htmlAttributes` to let other plug-ins specify attributes added
56
+
to the compiled HTML element.
43
57
44
58
```idl
45
59
interface Data { }
@@ -175,3 +189,9 @@ A list of **VFile**-related utilities can be found at [**vfile**][vfile].
175
189
[hast-nodes]: https://github.com/wooorm/hast#nodes
176
190
177
191
[vfile]: https://github.com/wooorm/vfile
192
+
193
+
[remark-html]: https://github.com/wooorm/remark-html
194
+
195
+
[parent]: #parent
196
+
197
+
[data]: #data
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4