@yozora/tokenizer-link 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/link#readme">@yozora/tokenizer-link</a>
5
+ <a href="https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link#readme">@yozora/tokenizer-link</a>
6
6
  </h1>
7
7
  <div align="center">
8
8
  <a href="https://www.npmjs.com/package/@yozora/tokenizer-link">
@@ -188,53 +188,53 @@ Name | Type | Required | Default
188
188
 
189
189
  [live-examples]: https://yozora.guanghechen.com/docs/package/tokenizer-link#live-examples
190
190
  [docpage]: https://yozora.guanghechen.com/docs/package/tokenizer-link
191
- [homepage]: https://github.com/yozorajs/yozora/tree/main/tokenizers/link#readme
191
+ [homepage]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link#readme
192
192
  [gfm-spec]: https://github.github.com/gfm
193
193
  [mdast-homepage]: https://github.com/syntax-tree/mdast
194
194
 
195
- [@yozora/ast]: https://github.com/yozorajs/yozora/tree/main/packages/ast#readme
196
- [@yozora/ast-util]: https://github.com/yozorajs/yozora/tree/main/packages/ast-util#readme
197
- [@yozora/character]: https://github.com/yozorajs/yozora/tree/main/packages/character#readme
198
- [@yozora/eslint-config]: https://github.com/yozorajs/yozora/tree/main/packages/eslint-config#readme
199
- [@yozora/core-parser]: https://github.com/yozorajs/yozora/tree/main/packages/core-parser#readme
200
- [@yozora/core-tokenizer]: https://github.com/yozorajs/yozora/tree/main/packages/core-tokenizer#readme
201
- [@yozora/invariant]: https://github.com/yozorajs/yozora/tree/main/packages/invariant#readme
202
- [@yozora/jest-for-tokenizer]: https://github.com/yozorajs/yozora/tree/main/packages/jest-for-tokenizer#readme
203
- [@yozora/parser]: https://github.com/yozorajs/yozora/tree/main/packages/parser#readme
204
- [@yozora/parser-gfm]: https://github.com/yozorajs/yozora/tree/main/packages/parser-gfm#readme
205
- [@yozora/parser-gfm-ex]: https://github.com/yozorajs/yozora/tree/main/packages/parser-gfm-ex#readme
206
- [@yozora/template-tokenizer]: https://github.com/yozorajs/yozora/tree/main/packages/template-tokenizer#readme
207
- [@yozora/tokenizer-admonition]: https://github.com/yozorajs/yozora/tree/main/tokenizers/admonition#readme
208
- [@yozora/tokenizer-autolink]: https://github.com/yozorajs/yozora/tree/main/tokenizers/autolink#readme
209
- [@yozora/tokenizer-autolink-extension]: https://github.com/yozorajs/yozora/tree/main/tokenizers/autolink-extension#readme
210
- [@yozora/tokenizer-blockquote]: https://github.com/yozorajs/yozora/tree/main/tokenizers/blockquote#readme
211
- [@yozora/tokenizer-break]: https://github.com/yozorajs/yozora/tree/main/tokenizers/break#readme
212
- [@yozora/tokenizer-definition]: https://github.com/yozorajs/yozora/tree/main/tokenizers/definition#readme
213
- [@yozora/tokenizer-delete]: https://github.com/yozorajs/yozora/tree/main/tokenizers/delete#readme
214
- [@yozora/tokenizer-ecma-import]: https://github.com/yozorajs/yozora/tree/main/tokenizers/ecma-import#readme
215
- [@yozora/tokenizer-emphasis]: https://github.com/yozorajs/yozora/tree/main/tokenizers/emphasis#readme
216
- [@yozora/tokenizer-fenced-block]: https://github.com/yozorajs/yozora/tree/main/tokenizers/fenced-block#readme
217
- [@yozora/tokenizer-fenced-code]: https://github.com/yozorajs/yozora/tree/main/tokenizers/fenced-code#readme
218
- [@yozora/tokenizer-footnote]: https://github.com/yozorajs/yozora/tree/main/tokenizers/footnote#readme
219
- [@yozora/tokenizer-footnote-definition]: https://github.com/yozorajs/yozora/tree/main/tokenizers/footnote-definition#readme
220
- [@yozora/tokenizer-footnote-reference]: https://github.com/yozorajs/yozora/tree/main/tokenizers/footnote-reference#readme
221
- [@yozora/tokenizer-heading]: https://github.com/yozorajs/yozora/tree/main/tokenizers/heading#readme
222
- [@yozora/tokenizer-html-block]: https://github.com/yozorajs/yozora/tree/main/tokenizers/html-block#readme
223
- [@yozora/tokenizer-html-inline]: https://github.com/yozorajs/yozora/tree/main/tokenizers/html-inline#readme
224
- [@yozora/tokenizer-image]: https://github.com/yozorajs/yozora/tree/main/tokenizers/image#readme
225
- [@yozora/tokenizer-image-reference]: https://github.com/yozorajs/yozora/tree/main/tokenizers/image-reference#readme
226
- [@yozora/tokenizer-indented-code]: https://github.com/yozorajs/yozora/tree/main/tokenizers/indented-code#readme
227
- [@yozora/tokenizer-inline-code]: https://github.com/yozorajs/yozora/tree/main/tokenizers/inline-code#readme
228
- [@yozora/tokenizer-inline-math]: https://github.com/yozorajs/yozora/tree/main/tokenizers/inline-math#readme
229
- [@yozora/tokenizer-link]: https://github.com/yozorajs/yozora/tree/main/tokenizers/link#readme
230
- [@yozora/tokenizer-link-reference]: https://github.com/yozorajs/yozora/tree/main/tokenizers/link-reference#readme
231
- [@yozora/tokenizer-list]: https://github.com/yozorajs/yozora/tree/main/tokenizers/list#readme
232
- [@yozora/tokenizer-math]: https://github.com/yozorajs/yozora/tree/main/tokenizers/math#readme
233
- [@yozora/tokenizer-paragraph]: https://github.com/yozorajs/yozora/tree/main/tokenizers/paragraph#readme
234
- [@yozora/tokenizer-setext-heading]: https://github.com/yozorajs/yozora/tree/main/tokenizers/setext-heading#readme
235
- [@yozora/tokenizer-table]: https://github.com/yozorajs/yozora/tree/main/tokenizers/table#readme
236
- [@yozora/tokenizer-text]: https://github.com/yozorajs/yozora/tree/main/tokenizers/text#readme
237
- [@yozora/tokenizer-thematic-break]: https://github.com/yozorajs/yozora/tree/main/tokenizers/thematic-break#readme
195
+ [@yozora/ast]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/ast#readme
196
+ [@yozora/ast-util]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/ast-util#readme
197
+ [@yozora/character]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/character#readme
198
+ [@yozora/eslint-config]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/eslint-config#readme
199
+ [@yozora/core-parser]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/core-parser#readme
200
+ [@yozora/core-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/core-tokenizer#readme
201
+ [@yozora/invariant]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/invariant#readme
202
+ [@yozora/jest-for-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/jest-for-tokenizer#readme
203
+ [@yozora/parser]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser#readme
204
+ [@yozora/parser-gfm]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser-gfm#readme
205
+ [@yozora/parser-gfm-ex]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser-gfm-ex#readme
206
+ [@yozora/template-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/template-tokenizer#readme
207
+ [@yozora/tokenizer-admonition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/admonition#readme
208
+ [@yozora/tokenizer-autolink]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink#readme
209
+ [@yozora/tokenizer-autolink-extension]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink-extension#readme
210
+ [@yozora/tokenizer-blockquote]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/blockquote#readme
211
+ [@yozora/tokenizer-break]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/break#readme
212
+ [@yozora/tokenizer-definition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/definition#readme
213
+ [@yozora/tokenizer-delete]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/delete#readme
214
+ [@yozora/tokenizer-ecma-import]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/ecma-import#readme
215
+ [@yozora/tokenizer-emphasis]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/emphasis#readme
216
+ [@yozora/tokenizer-fenced-block]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/fenced-block#readme
217
+ [@yozora/tokenizer-fenced-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/fenced-code#readme
218
+ [@yozora/tokenizer-footnote]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote#readme
219
+ [@yozora/tokenizer-footnote-definition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote-definition#readme
220
+ [@yozora/tokenizer-footnote-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote-reference#readme
221
+ [@yozora/tokenizer-heading]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/heading#readme
222
+ [@yozora/tokenizer-html-block]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/html-block#readme
223
+ [@yozora/tokenizer-html-inline]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/html-inline#readme
224
+ [@yozora/tokenizer-image]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/image#readme
225
+ [@yozora/tokenizer-image-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/image-reference#readme
226
+ [@yozora/tokenizer-indented-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/indented-code#readme
227
+ [@yozora/tokenizer-inline-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/inline-code#readme
228
+ [@yozora/tokenizer-inline-math]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/inline-math#readme
229
+ [@yozora/tokenizer-link]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link#readme
230
+ [@yozora/tokenizer-link-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link-reference#readme
231
+ [@yozora/tokenizer-list]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/list#readme
232
+ [@yozora/tokenizer-math]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/math#readme
233
+ [@yozora/tokenizer-paragraph]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/paragraph#readme
234
+ [@yozora/tokenizer-setext-heading]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/setext-heading#readme
235
+ [@yozora/tokenizer-table]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/table#readme
236
+ [@yozora/tokenizer-text]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/text#readme
237
+ [@yozora/tokenizer-thematic-break]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/thematic-break#readme
238
238
 
239
239
  [@yozora/react-admonition]: https://github.com/yozorajs/yozora-react/tree/main/packages/admonition#readme
240
240
  [@yozora/react-blockquote]: https://github.com/yozorajs/yozora-react/tree/main/packages/blockquote#readme
@@ -1,6 +1,86 @@
1
- export * from './util/check-brackets';
2
- export * from './util/link-destination';
3
- export * from './util/link-title';
4
- export { LinkTokenizer, LinkTokenizer as default } from './tokenizer';
5
- export { uniqueName as LinkTokenizerName } from './types';
6
- export type { IThis as ILinkHookContext, IToken as ILinkToken, ITokenizerProps as ILinkTokenizerProps, } from './types';
1
+ import { INodePoint, INodeInterval } from '@yozora/character';
2
+ import { IYastInlineToken, IPartialYastInlineToken, ITokenizer, IBaseInlineTokenizerProps, IYastTokenDelimiter, BaseInlineTokenizer, IInlineTokenizer, IMatchInlineHookCreator, IParseInlineHookCreator } from '@yozora/core-tokenizer';
3
+ import { LinkType, Link } from '@yozora/ast';
4
+
5
+ /**
6
+ * The link text may contain balanced brackets, but not unbalanced ones,
7
+ * unless they are escaped
8
+ *
9
+ * @see https://github.github.com/gfm/#example-520
10
+ * @see https://github.github.com/gfm/#example-521
11
+ * @see https://github.github.com/gfm/#example-522
12
+ * @see https://github.github.com/gfm/#example-523
13
+ */
14
+ declare const checkBalancedBracketsStatus: (startIndex: number, endIndex: number, internalTokens: ReadonlyArray<IYastInlineToken>, nodePoints: ReadonlyArray<INodePoint>) => -1 | 0 | 1;
15
+
16
+ /**
17
+ * A link destination consists of either
18
+ * - a sequence of zero or more characters between an opening '<' and a closing '>'
19
+ * that contains no line breaks or unescaped '<' or '>' characters, or
20
+ * - a nonempty sequence of characters that does not start with '<', does not include
21
+ * ASCII space or control characters, and includes parentheses only if
22
+ * (a) they are backslash-escaped or
23
+ * (b) they are part of a balanced pair of unescaped parentheses. (Implementations
24
+ * may impose limits on parentheses nesting to avoid performance issues, but
25
+ * at least three levels of nesting should be supported.)
26
+ * @see https://github.github.com/gfm/#link-destination
27
+ * @return position at next iteration
28
+ */
29
+ declare function eatLinkDestination(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number): number;
30
+
31
+ /**
32
+ * A link title consists of either
33
+ *
34
+ * - a sequence of zero or more characters between straight double-quote
35
+ * characters '"', including a '"' character only if it is backslash-escaped, or
36
+ *
37
+ * - a sequence of zero or more characters between straight single-quote
38
+ * characters '\'', including a '\'' character only if it is backslash-escaped, or
39
+ *
40
+ * - a sequence of zero or more characters between matching parentheses '(...)',
41
+ * including a '(' or ')' character only if it is backslash-escaped.
42
+ */
43
+ declare function eatLinkTitle(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number): number;
44
+
45
+ declare type T = LinkType;
46
+ declare type INode = Link;
47
+ declare const uniqueName = "@yozora/tokenizer-link";
48
+ interface IToken extends IPartialYastInlineToken<T> {
49
+ /**
50
+ * Link destination interval.
51
+ */
52
+ destinationContent?: INodeInterval;
53
+ /**
54
+ * Link title interval.
55
+ */
56
+ titleContent?: INodeInterval;
57
+ }
58
+ interface IDelimiter extends IYastTokenDelimiter {
59
+ /**
60
+ * IDelimiter type.
61
+ */
62
+ type: 'opener' | 'closer';
63
+ /**
64
+ * Link destination interval.
65
+ */
66
+ destinationContent?: INodeInterval;
67
+ /**
68
+ * Link title interval.
69
+ */
70
+ titleContent?: INodeInterval;
71
+ }
72
+ declare type IThis = ITokenizer;
73
+ declare type ITokenizerProps = Partial<IBaseInlineTokenizerProps>;
74
+
75
+ /**
76
+ * Lexical Analyzer for InlineLink.
77
+ * @see https://github.com/syntax-tree/mdast#link
78
+ * @see https://github.github.com/gfm/#links
79
+ */
80
+ declare class LinkTokenizer extends BaseInlineTokenizer<T, IDelimiter, IToken, INode, IThis> implements IInlineTokenizer<T, IDelimiter, IToken, INode, IThis> {
81
+ constructor(props?: ITokenizerProps);
82
+ readonly match: IMatchInlineHookCreator<T, IDelimiter, IToken, IThis>;
83
+ readonly parse: IParseInlineHookCreator<T, IToken, INode, IThis>;
84
+ }
85
+
86
+ export { IThis as ILinkHookContext, IToken as ILinkToken, ITokenizerProps as ILinkTokenizerProps, LinkTokenizer, uniqueName as LinkTokenizerName, checkBalancedBracketsStatus, LinkTokenizer as default, eatLinkDestination, eatLinkTitle };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yozora/tokenizer-link",
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/link"
12
12
  },
13
- "homepage": "https://yozora.guanghechen.com/docs/package/tokenizer-link",
13
+ "homepage": "https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link",
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
  }