@yozora/tokenizer-definition 2.0.2-alpha.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <header>
4
4
  <h1 align="center">
5
- <a href="https://github.com/yozorajs/yozora/tree/main/tokenizers/definition#readme">@yozora/tokenizer-definition</a>
5
+ <a href="https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/definition#readme">@yozora/tokenizer-definition</a>
6
6
  </h1>
7
7
  <div align="center">
8
8
  <a href="https://www.npmjs.com/package/@yozora/tokenizer-definition">
@@ -201,53 +201,53 @@ Name | Type | Required | Default
201
201
 
202
202
  [live-examples]: https://yozora.guanghechen.com/docs/package/tokenizer-definition#live-examples
203
203
  [docpage]: https://yozora.guanghechen.com/docs/package/tokenizer-definition
204
- [homepage]: https://github.com/yozorajs/yozora/tree/main/tokenizers/definition#readme
204
+ [homepage]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/definition#readme
205
205
  [gfm-spec]: https://github.github.com/gfm
206
206
  [mdast-homepage]: https://github.com/syntax-tree/mdast
207
207
 
208
- [@yozora/ast]: https://github.com/yozorajs/yozora/tree/main/packages/ast#readme
209
- [@yozora/ast-util]: https://github.com/yozorajs/yozora/tree/main/packages/ast-util#readme
210
- [@yozora/character]: https://github.com/yozorajs/yozora/tree/main/packages/character#readme
211
- [@yozora/eslint-config]: https://github.com/yozorajs/yozora/tree/main/packages/eslint-config#readme
212
- [@yozora/core-parser]: https://github.com/yozorajs/yozora/tree/main/packages/core-parser#readme
213
- [@yozora/core-tokenizer]: https://github.com/yozorajs/yozora/tree/main/packages/core-tokenizer#readme
214
- [@yozora/invariant]: https://github.com/yozorajs/yozora/tree/main/packages/invariant#readme
215
- [@yozora/jest-for-tokenizer]: https://github.com/yozorajs/yozora/tree/main/packages/jest-for-tokenizer#readme
216
- [@yozora/parser]: https://github.com/yozorajs/yozora/tree/main/packages/parser#readme
217
- [@yozora/parser-gfm]: https://github.com/yozorajs/yozora/tree/main/packages/parser-gfm#readme
218
- [@yozora/parser-gfm-ex]: https://github.com/yozorajs/yozora/tree/main/packages/parser-gfm-ex#readme
219
- [@yozora/template-tokenizer]: https://github.com/yozorajs/yozora/tree/main/packages/template-tokenizer#readme
220
- [@yozora/tokenizer-admonition]: https://github.com/yozorajs/yozora/tree/main/tokenizers/admonition#readme
221
- [@yozora/tokenizer-autolink]: https://github.com/yozorajs/yozora/tree/main/tokenizers/autolink#readme
222
- [@yozora/tokenizer-autolink-extension]: https://github.com/yozorajs/yozora/tree/main/tokenizers/autolink-extension#readme
223
- [@yozora/tokenizer-blockquote]: https://github.com/yozorajs/yozora/tree/main/tokenizers/blockquote#readme
224
- [@yozora/tokenizer-break]: https://github.com/yozorajs/yozora/tree/main/tokenizers/break#readme
225
- [@yozora/tokenizer-definition]: https://github.com/yozorajs/yozora/tree/main/tokenizers/definition#readme
226
- [@yozora/tokenizer-delete]: https://github.com/yozorajs/yozora/tree/main/tokenizers/delete#readme
227
- [@yozora/tokenizer-ecma-import]: https://github.com/yozorajs/yozora/tree/main/tokenizers/ecma-import#readme
228
- [@yozora/tokenizer-emphasis]: https://github.com/yozorajs/yozora/tree/main/tokenizers/emphasis#readme
229
- [@yozora/tokenizer-fenced-block]: https://github.com/yozorajs/yozora/tree/main/tokenizers/fenced-block#readme
230
- [@yozora/tokenizer-fenced-code]: https://github.com/yozorajs/yozora/tree/main/tokenizers/fenced-code#readme
231
- [@yozora/tokenizer-footnote]: https://github.com/yozorajs/yozora/tree/main/tokenizers/footnote#readme
232
- [@yozora/tokenizer-footnote-definition]: https://github.com/yozorajs/yozora/tree/main/tokenizers/footnote-definition#readme
233
- [@yozora/tokenizer-footnote-reference]: https://github.com/yozorajs/yozora/tree/main/tokenizers/footnote-reference#readme
234
- [@yozora/tokenizer-heading]: https://github.com/yozorajs/yozora/tree/main/tokenizers/heading#readme
235
- [@yozora/tokenizer-html-block]: https://github.com/yozorajs/yozora/tree/main/tokenizers/html-block#readme
236
- [@yozora/tokenizer-html-inline]: https://github.com/yozorajs/yozora/tree/main/tokenizers/html-inline#readme
237
- [@yozora/tokenizer-image]: https://github.com/yozorajs/yozora/tree/main/tokenizers/image#readme
238
- [@yozora/tokenizer-image-reference]: https://github.com/yozorajs/yozora/tree/main/tokenizers/image-reference#readme
239
- [@yozora/tokenizer-indented-code]: https://github.com/yozorajs/yozora/tree/main/tokenizers/indented-code#readme
240
- [@yozora/tokenizer-inline-code]: https://github.com/yozorajs/yozora/tree/main/tokenizers/inline-code#readme
241
- [@yozora/tokenizer-inline-math]: https://github.com/yozorajs/yozora/tree/main/tokenizers/inline-math#readme
242
- [@yozora/tokenizer-link]: https://github.com/yozorajs/yozora/tree/main/tokenizers/link#readme
243
- [@yozora/tokenizer-link-reference]: https://github.com/yozorajs/yozora/tree/main/tokenizers/link-reference#readme
244
- [@yozora/tokenizer-list]: https://github.com/yozorajs/yozora/tree/main/tokenizers/list#readme
245
- [@yozora/tokenizer-math]: https://github.com/yozorajs/yozora/tree/main/tokenizers/math#readme
246
- [@yozora/tokenizer-paragraph]: https://github.com/yozorajs/yozora/tree/main/tokenizers/paragraph#readme
247
- [@yozora/tokenizer-setext-heading]: https://github.com/yozorajs/yozora/tree/main/tokenizers/setext-heading#readme
248
- [@yozora/tokenizer-table]: https://github.com/yozorajs/yozora/tree/main/tokenizers/table#readme
249
- [@yozora/tokenizer-text]: https://github.com/yozorajs/yozora/tree/main/tokenizers/text#readme
250
- [@yozora/tokenizer-thematic-break]: https://github.com/yozorajs/yozora/tree/main/tokenizers/thematic-break#readme
208
+ [@yozora/ast]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/ast#readme
209
+ [@yozora/ast-util]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/ast-util#readme
210
+ [@yozora/character]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/character#readme
211
+ [@yozora/eslint-config]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/eslint-config#readme
212
+ [@yozora/core-parser]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/core-parser#readme
213
+ [@yozora/core-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/core-tokenizer#readme
214
+ [@yozora/invariant]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/invariant#readme
215
+ [@yozora/jest-for-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/jest-for-tokenizer#readme
216
+ [@yozora/parser]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser#readme
217
+ [@yozora/parser-gfm]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser-gfm#readme
218
+ [@yozora/parser-gfm-ex]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser-gfm-ex#readme
219
+ [@yozora/template-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/template-tokenizer#readme
220
+ [@yozora/tokenizer-admonition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/admonition#readme
221
+ [@yozora/tokenizer-autolink]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink#readme
222
+ [@yozora/tokenizer-autolink-extension]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink-extension#readme
223
+ [@yozora/tokenizer-blockquote]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/blockquote#readme
224
+ [@yozora/tokenizer-break]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/break#readme
225
+ [@yozora/tokenizer-definition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/definition#readme
226
+ [@yozora/tokenizer-delete]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/delete#readme
227
+ [@yozora/tokenizer-ecma-import]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/ecma-import#readme
228
+ [@yozora/tokenizer-emphasis]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/emphasis#readme
229
+ [@yozora/tokenizer-fenced-block]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/fenced-block#readme
230
+ [@yozora/tokenizer-fenced-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/fenced-code#readme
231
+ [@yozora/tokenizer-footnote]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote#readme
232
+ [@yozora/tokenizer-footnote-definition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote-definition#readme
233
+ [@yozora/tokenizer-footnote-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote-reference#readme
234
+ [@yozora/tokenizer-heading]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/heading#readme
235
+ [@yozora/tokenizer-html-block]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/html-block#readme
236
+ [@yozora/tokenizer-html-inline]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/html-inline#readme
237
+ [@yozora/tokenizer-image]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/image#readme
238
+ [@yozora/tokenizer-image-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/image-reference#readme
239
+ [@yozora/tokenizer-indented-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/indented-code#readme
240
+ [@yozora/tokenizer-inline-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/inline-code#readme
241
+ [@yozora/tokenizer-inline-math]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/inline-math#readme
242
+ [@yozora/tokenizer-link]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link#readme
243
+ [@yozora/tokenizer-link-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link-reference#readme
244
+ [@yozora/tokenizer-list]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/list#readme
245
+ [@yozora/tokenizer-math]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/math#readme
246
+ [@yozora/tokenizer-paragraph]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/paragraph#readme
247
+ [@yozora/tokenizer-setext-heading]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/setext-heading#readme
248
+ [@yozora/tokenizer-table]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/table#readme
249
+ [@yozora/tokenizer-text]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/text#readme
250
+ [@yozora/tokenizer-thematic-break]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/thematic-break#readme
251
251
 
252
252
  [@yozora/react-admonition]: https://github.com/yozorajs/yozora-react/tree/main/packages/admonition#readme
253
253
  [@yozora/react-blockquote]: https://github.com/yozorajs/yozora-react/tree/main/packages/blockquote#readme
@@ -1,8 +1,193 @@
1
- export * from './util/link-destination';
2
- export * from './util/link-label';
3
- export * from './util/link-title';
4
- export { match as definitionMatch } from './match';
5
- export { parse as definitionParse } from './parse';
6
- export { DefinitionTokenizer, DefinitionTokenizer as default } from './tokenizer';
7
- export { uniqueName as DefinitionTokenizerName } from './types';
8
- export type { IThis as IDefinitionHookContext, IToken as IDefinitionToken, ITokenizerProps as IDefinitionTokenizerProps, } from './types';
1
+ import { INodePoint } from '@yozora/character';
2
+ import { IPartialYastBlockToken, IPhrasingContentLine, ITokenizer, IBaseBlockTokenizerProps, IMatchBlockHookCreator, IParseBlockHookCreator, BaseBlockTokenizer, IBlockTokenizer } from '@yozora/core-tokenizer';
3
+ import { DefinitionType, Definition } from '@yozora/ast';
4
+
5
+ /**
6
+ * The processing token of eatAndCollectLinkDestination, used to save
7
+ * intermediate data to support multiple codePosition fragment processing
8
+ *
9
+ * @see https://github.github.com/gfm/#link-destination
10
+ */
11
+ interface ILinkDestinationCollectingState {
12
+ /**
13
+ * Whether the current token has collected a legal LinkDestination
14
+ */
15
+ saturated: boolean;
16
+ /**
17
+ * Collected token points
18
+ */
19
+ nodePoints: INodePoint[];
20
+ /**
21
+ * Whether an opening angle bracket has been matched
22
+ */
23
+ hasOpenAngleBracket: boolean;
24
+ /**
25
+ * Number of parentheses encountered
26
+ */
27
+ openParensCount: number;
28
+ }
29
+ /**
30
+ *
31
+ * @param nodePoints
32
+ * @param startIndex
33
+ * @param endIndex
34
+ * @param state
35
+ * @see https://github.github.com/gfm/#link-destination
36
+ */
37
+ declare function eatAndCollectLinkDestination(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number, state: ILinkDestinationCollectingState | null): {
38
+ nextIndex: number;
39
+ state: ILinkDestinationCollectingState;
40
+ };
41
+
42
+ /**
43
+ * The processing token of eatAndCollectLinkLabel, used to save
44
+ * intermediate data to support multiple codePosition fragment processing
45
+ *
46
+ * @see https://github.github.com/gfm/#link-label
47
+ */
48
+ interface ILinkLabelCollectingState {
49
+ /**
50
+ * Whether the current token has collected a legal LinkDestination
51
+ */
52
+ saturated: boolean;
53
+ /**
54
+ * Collected token points
55
+ */
56
+ nodePoints: INodePoint[];
57
+ /**
58
+ * Does it contain non-blank characters
59
+ */
60
+ hasNonWhitespaceCharacter: boolean;
61
+ }
62
+ /**
63
+ * A link label begins with a left bracket '[' and ends with the first right bracket ']'
64
+ * that is not backslash-escaped. Between these brackets there must be at least one
65
+ * non-whitespace character. Unescaped square bracket characters are not allowed inside
66
+ * the opening and closing square brackets of link labels. A link label can have at most
67
+ * 999 characters inside the square brackets.
68
+ *
69
+ * One label matches another just in case their normalized forms are equal. To normalize
70
+ * a label, strip off the opening and closing brackets, perform the Unicode case fold,
71
+ * strip leading and trailing whitespace and collapse consecutive internal whitespace to
72
+ * a single space. If there are multiple matching reference link definitions, the one that
73
+ * comes first in the document is used. (It is desirable in such cases to emit a warning.)
74
+ *
75
+ * @param nodePoints
76
+ * @param startIndex
77
+ * @param endIndex
78
+ * @param state
79
+ * @see https://github.github.com/gfm/#link-label
80
+ */
81
+ declare function eatAndCollectLinkLabel(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number, state: ILinkLabelCollectingState | null): {
82
+ nextIndex: number;
83
+ state: ILinkLabelCollectingState;
84
+ };
85
+
86
+ /**
87
+ * The processing token of eatAndCollectLinkDestination, used to save
88
+ * intermediate data to support multiple codePosition fragment processing.
89
+ *
90
+ * @see https://github.github.com/gfm/#link-title
91
+ */
92
+ interface ILinkTitleCollectingState {
93
+ /**
94
+ * Whether the current token has collected a legal LinkDestination
95
+ */
96
+ saturated: boolean;
97
+ /**
98
+ * Collected token points
99
+ */
100
+ nodePoints: INodePoint[];
101
+ /**
102
+ * Character that wrap link-title
103
+ */
104
+ wrapSymbol: number | null;
105
+ }
106
+ /**
107
+ *
108
+ * @param nodePoints
109
+ * @param startIndex
110
+ * @param endIndex
111
+ * @param state
112
+ * @see https://github.github.com/gfm/#link-title
113
+ */
114
+ declare function eatAndCollectLinkTitle(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number, state: ILinkTitleCollectingState | null): {
115
+ nextIndex: number;
116
+ state: ILinkTitleCollectingState;
117
+ };
118
+
119
+ declare type T = DefinitionType;
120
+ declare type INode = Definition;
121
+ declare const uniqueName = "@yozora/tokenizer-definition";
122
+ interface IToken extends IPartialYastBlockToken<T> {
123
+ /**
124
+ *
125
+ */
126
+ lines: Array<Readonly<IPhrasingContentLine>>;
127
+ /**
128
+ * Link label
129
+ * Trimmed, Case-Insensitive
130
+ */
131
+ label: ILinkLabelCollectingState;
132
+ /**
133
+ * Link destination
134
+ */
135
+ destination: ILinkDestinationCollectingState | null;
136
+ /**
137
+ * Link title
138
+ */
139
+ title: ILinkTitleCollectingState | null;
140
+ /**
141
+ * The line number of the first matched character of the link label
142
+ */
143
+ lineNoOfLabel: number;
144
+ /**
145
+ * The line number of the first matched character of the link destination
146
+ */
147
+ lineNoOfDestination: number;
148
+ /**
149
+ * The line number of the first matched character of the link title
150
+ */
151
+ lineNoOfTitle: number;
152
+ /**
153
+ * Resolved definition label.
154
+ */
155
+ _label?: string;
156
+ /**
157
+ * Resolved definition identifier.
158
+ */
159
+ _identifier?: string;
160
+ }
161
+ declare type IThis = ITokenizer;
162
+ declare type ITokenizerProps = Partial<IBaseBlockTokenizerProps>;
163
+
164
+ /**
165
+ * A link reference definition consists of a link label, indented up to three
166
+ * spaces, followed by a colon (:), optional whitespace (including up to one
167
+ * line ending), a link destination, optional whitespace (including up to one
168
+ * line ending), and an optional link title, which if it is present must be
169
+ * separated from the link destination by whitespace. No further non-whitespace
170
+ * characters may occur on the line.
171
+ *
172
+ * A link reference definition does not correspond to a structural element of
173
+ * a document. Instead, it defines a label which can be used in reference
174
+ * links and reference-style images elsewhere in the document. Link reference
175
+ * definitions can come either before or after the links that use them.
176
+ *
177
+ * @see https://github.github.com/gfm/#link-reference-definition
178
+ */
179
+ declare const match: IMatchBlockHookCreator<T, IToken, IThis>;
180
+
181
+ declare const parse: IParseBlockHookCreator<T, IToken, INode, IThis>;
182
+
183
+ /**
184
+ * Lexical Analyzer for Definition.
185
+ * @see https://github.github.com/gfm/#link-reference-definition
186
+ */
187
+ declare class DefinitionTokenizer extends BaseBlockTokenizer<T, IToken, INode, IThis> implements IBlockTokenizer<T, IToken, INode, IThis> {
188
+ constructor(props?: ITokenizerProps);
189
+ readonly match: IMatchBlockHookCreator<T, IToken, IThis>;
190
+ readonly parse: IParseBlockHookCreator<T, IToken, INode, IThis>;
191
+ }
192
+
193
+ export { DefinitionTokenizer, uniqueName as DefinitionTokenizerName, IThis as IDefinitionHookContext, IToken as IDefinitionToken, ITokenizerProps as IDefinitionTokenizerProps, ILinkDestinationCollectingState, ILinkLabelCollectingState, ILinkTitleCollectingState, DefinitionTokenizer as default, match as definitionMatch, parse as definitionParse, eatAndCollectLinkDestination, eatAndCollectLinkLabel, eatAndCollectLinkTitle };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yozora/tokenizer-definition",
3
- "version": "2.0.2-alpha.0",
3
+ "version": "2.0.2",
4
4
  "author": {
5
5
  "name": "guanghechen",
6
6
  "url": "https://github.com/guanghechen/"
@@ -10,14 +10,14 @@
10
10
  "url": "https://github.com/yozorajs/yozora.git",
11
11
  "directory": "tokenizers/definition"
12
12
  },
13
- "homepage": "https://yozora.guanghechen.com/docs/package/tokenizer-definition",
13
+ "homepage": "https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/definition",
14
14
  "main": "lib/cjs/index.js",
15
15
  "module": "lib/esm/index.js",
16
16
  "types": "lib/types/index.d.ts",
17
17
  "source": "src/index.ts",
18
18
  "license": "MIT",
19
19
  "engines": {
20
- "node": ">= 14.15.0"
20
+ "node": ">= 16.0.0"
21
21
  },
22
22
  "files": [
23
23
  "lib/",
@@ -35,9 +35,9 @@
35
35
  "test": "cross-env TS_NODE_FILES=true jest --config ../../jest.config.js --rootDir ."
36
36
  },
37
37
  "dependencies": {
38
- "@yozora/ast": "^2.0.2-alpha.0",
39
- "@yozora/character": "^2.0.2-alpha.0",
40
- "@yozora/core-tokenizer": "^2.0.2-alpha.0"
38
+ "@yozora/ast": "^2.0.2",
39
+ "@yozora/character": "^2.0.2",
40
+ "@yozora/core-tokenizer": "^2.0.2"
41
41
  },
42
- "gitHead": "430eaabd83f4a1ee29398ee1798aa4511976c38f"
42
+ "gitHead": "6911295e9eacfa29563fe93494704190e50625fd"
43
43
  }