@yozora/tokenizer-autolink 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 +45 -45
- package/lib/types/index.d.ts +78 -7
- package/package.json +7 -7
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/
|
|
5
|
+
<a href="https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink#readme">@yozora/tokenizer-autolink</a>
|
|
6
6
|
</h1>
|
|
7
7
|
<div align="center">
|
|
8
8
|
<a href="https://www.npmjs.com/package/@yozora/tokenizer-autolink">
|
|
@@ -200,53 +200,53 @@ Name | Type | Required | Default
|
|
|
200
200
|
|
|
201
201
|
[live-examples]: https://yozora.guanghechen.com/docs/package/tokenizer-autolink#live-examples
|
|
202
202
|
[docpage]: https://yozora.guanghechen.com/docs/package/tokenizer-autolink
|
|
203
|
-
[homepage]: https://github.com/yozorajs/yozora/tree/
|
|
203
|
+
[homepage]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink#readme
|
|
204
204
|
[gfm-spec]: https://github.github.com/gfm
|
|
205
205
|
[mdast-homepage]: https://github.com/syntax-tree/mdast
|
|
206
206
|
|
|
207
|
-
[@yozora/ast]: https://github.com/yozorajs/yozora/tree/
|
|
208
|
-
[@yozora/ast-util]: https://github.com/yozorajs/yozora/tree/
|
|
209
|
-
[@yozora/character]: https://github.com/yozorajs/yozora/tree/
|
|
210
|
-
[@yozora/eslint-config]: https://github.com/yozorajs/yozora/tree/
|
|
211
|
-
[@yozora/core-parser]: https://github.com/yozorajs/yozora/tree/
|
|
212
|
-
[@yozora/core-tokenizer]: https://github.com/yozorajs/yozora/tree/
|
|
213
|
-
[@yozora/invariant]: https://github.com/yozorajs/yozora/tree/
|
|
214
|
-
[@yozora/jest-for-tokenizer]: https://github.com/yozorajs/yozora/tree/
|
|
215
|
-
[@yozora/parser]: https://github.com/yozorajs/yozora/tree/
|
|
216
|
-
[@yozora/parser-gfm]: https://github.com/yozorajs/yozora/tree/
|
|
217
|
-
[@yozora/parser-gfm-ex]: https://github.com/yozorajs/yozora/tree/
|
|
218
|
-
[@yozora/template-tokenizer]: https://github.com/yozorajs/yozora/tree/
|
|
219
|
-
[@yozora/tokenizer-admonition]: https://github.com/yozorajs/yozora/tree/
|
|
220
|
-
[@yozora/tokenizer-autolink]: https://github.com/yozorajs/yozora/tree/
|
|
221
|
-
[@yozora/tokenizer-autolink-extension]: https://github.com/yozorajs/yozora/tree/
|
|
222
|
-
[@yozora/tokenizer-blockquote]: https://github.com/yozorajs/yozora/tree/
|
|
223
|
-
[@yozora/tokenizer-break]: https://github.com/yozorajs/yozora/tree/
|
|
224
|
-
[@yozora/tokenizer-definition]: https://github.com/yozorajs/yozora/tree/
|
|
225
|
-
[@yozora/tokenizer-delete]: https://github.com/yozorajs/yozora/tree/
|
|
226
|
-
[@yozora/tokenizer-ecma-import]: https://github.com/yozorajs/yozora/tree/
|
|
227
|
-
[@yozora/tokenizer-emphasis]: https://github.com/yozorajs/yozora/tree/
|
|
228
|
-
[@yozora/tokenizer-fenced-block]: https://github.com/yozorajs/yozora/tree/
|
|
229
|
-
[@yozora/tokenizer-fenced-code]: https://github.com/yozorajs/yozora/tree/
|
|
230
|
-
[@yozora/tokenizer-footnote]: https://github.com/yozorajs/yozora/tree/
|
|
231
|
-
[@yozora/tokenizer-footnote-definition]: https://github.com/yozorajs/yozora/tree/
|
|
232
|
-
[@yozora/tokenizer-footnote-reference]: https://github.com/yozorajs/yozora/tree/
|
|
233
|
-
[@yozora/tokenizer-heading]: https://github.com/yozorajs/yozora/tree/
|
|
234
|
-
[@yozora/tokenizer-html-block]: https://github.com/yozorajs/yozora/tree/
|
|
235
|
-
[@yozora/tokenizer-html-inline]: https://github.com/yozorajs/yozora/tree/
|
|
236
|
-
[@yozora/tokenizer-image]: https://github.com/yozorajs/yozora/tree/
|
|
237
|
-
[@yozora/tokenizer-image-reference]: https://github.com/yozorajs/yozora/tree/
|
|
238
|
-
[@yozora/tokenizer-indented-code]: https://github.com/yozorajs/yozora/tree/
|
|
239
|
-
[@yozora/tokenizer-inline-code]: https://github.com/yozorajs/yozora/tree/
|
|
240
|
-
[@yozora/tokenizer-inline-math]: https://github.com/yozorajs/yozora/tree/
|
|
241
|
-
[@yozora/tokenizer-link]: https://github.com/yozorajs/yozora/tree/
|
|
242
|
-
[@yozora/tokenizer-link-reference]: https://github.com/yozorajs/yozora/tree/
|
|
243
|
-
[@yozora/tokenizer-list]: https://github.com/yozorajs/yozora/tree/
|
|
244
|
-
[@yozora/tokenizer-math]: https://github.com/yozorajs/yozora/tree/
|
|
245
|
-
[@yozora/tokenizer-paragraph]: https://github.com/yozorajs/yozora/tree/
|
|
246
|
-
[@yozora/tokenizer-setext-heading]: https://github.com/yozorajs/yozora/tree/
|
|
247
|
-
[@yozora/tokenizer-table]: https://github.com/yozorajs/yozora/tree/
|
|
248
|
-
[@yozora/tokenizer-text]: https://github.com/yozorajs/yozora/tree/
|
|
249
|
-
[@yozora/tokenizer-thematic-break]: https://github.com/yozorajs/yozora/tree/
|
|
207
|
+
[@yozora/ast]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/ast#readme
|
|
208
|
+
[@yozora/ast-util]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/ast-util#readme
|
|
209
|
+
[@yozora/character]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/character#readme
|
|
210
|
+
[@yozora/eslint-config]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/eslint-config#readme
|
|
211
|
+
[@yozora/core-parser]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/core-parser#readme
|
|
212
|
+
[@yozora/core-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/core-tokenizer#readme
|
|
213
|
+
[@yozora/invariant]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/invariant#readme
|
|
214
|
+
[@yozora/jest-for-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/jest-for-tokenizer#readme
|
|
215
|
+
[@yozora/parser]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser#readme
|
|
216
|
+
[@yozora/parser-gfm]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser-gfm#readme
|
|
217
|
+
[@yozora/parser-gfm-ex]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/parser-gfm-ex#readme
|
|
218
|
+
[@yozora/template-tokenizer]: https://github.com/yozorajs/yozora/tree/release-2.x.x/packages/template-tokenizer#readme
|
|
219
|
+
[@yozora/tokenizer-admonition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/admonition#readme
|
|
220
|
+
[@yozora/tokenizer-autolink]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink#readme
|
|
221
|
+
[@yozora/tokenizer-autolink-extension]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink-extension#readme
|
|
222
|
+
[@yozora/tokenizer-blockquote]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/blockquote#readme
|
|
223
|
+
[@yozora/tokenizer-break]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/break#readme
|
|
224
|
+
[@yozora/tokenizer-definition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/definition#readme
|
|
225
|
+
[@yozora/tokenizer-delete]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/delete#readme
|
|
226
|
+
[@yozora/tokenizer-ecma-import]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/ecma-import#readme
|
|
227
|
+
[@yozora/tokenizer-emphasis]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/emphasis#readme
|
|
228
|
+
[@yozora/tokenizer-fenced-block]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/fenced-block#readme
|
|
229
|
+
[@yozora/tokenizer-fenced-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/fenced-code#readme
|
|
230
|
+
[@yozora/tokenizer-footnote]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote#readme
|
|
231
|
+
[@yozora/tokenizer-footnote-definition]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote-definition#readme
|
|
232
|
+
[@yozora/tokenizer-footnote-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/footnote-reference#readme
|
|
233
|
+
[@yozora/tokenizer-heading]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/heading#readme
|
|
234
|
+
[@yozora/tokenizer-html-block]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/html-block#readme
|
|
235
|
+
[@yozora/tokenizer-html-inline]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/html-inline#readme
|
|
236
|
+
[@yozora/tokenizer-image]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/image#readme
|
|
237
|
+
[@yozora/tokenizer-image-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/image-reference#readme
|
|
238
|
+
[@yozora/tokenizer-indented-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/indented-code#readme
|
|
239
|
+
[@yozora/tokenizer-inline-code]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/inline-code#readme
|
|
240
|
+
[@yozora/tokenizer-inline-math]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/inline-math#readme
|
|
241
|
+
[@yozora/tokenizer-link]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link#readme
|
|
242
|
+
[@yozora/tokenizer-link-reference]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/link-reference#readme
|
|
243
|
+
[@yozora/tokenizer-list]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/list#readme
|
|
244
|
+
[@yozora/tokenizer-math]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/math#readme
|
|
245
|
+
[@yozora/tokenizer-paragraph]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/paragraph#readme
|
|
246
|
+
[@yozora/tokenizer-setext-heading]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/setext-heading#readme
|
|
247
|
+
[@yozora/tokenizer-table]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/table#readme
|
|
248
|
+
[@yozora/tokenizer-text]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/text#readme
|
|
249
|
+
[@yozora/tokenizer-thematic-break]: https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/thematic-break#readme
|
|
250
250
|
|
|
251
251
|
[@yozora/react-admonition]: https://github.com/yozorajs/yozora-react/tree/main/packages/admonition#readme
|
|
252
252
|
[@yozora/react-blockquote]: https://github.com/yozorajs/yozora-react/tree/main/packages/blockquote#readme
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,7 +1,78 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { INodePoint } from '@yozora/character';
|
|
2
|
+
import { IResultOfRequiredEater, IPartialYastInlineToken, ITokenizer, IBaseInlineTokenizerProps, IYastTokenDelimiter, IMatchInlineHookCreator, IParseInlineHookCreator, BaseInlineTokenizer, IInlineTokenizer } from '@yozora/core-tokenizer';
|
|
3
|
+
import { LinkType, Link } from '@yozora/ast';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* An email address, for these purposes, is anything that matches the
|
|
7
|
+
* non-normative regex from the HTML5 spec:
|
|
8
|
+
*
|
|
9
|
+
* /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}
|
|
10
|
+
* [a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
|
|
11
|
+
*
|
|
12
|
+
* @see https://github.github.com/gfm/#email-address
|
|
13
|
+
*/
|
|
14
|
+
declare function eatEmailAddress(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number): IResultOfRequiredEater;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Try to find to autolink absolute uri strictly start from the give `startIndex`.
|
|
18
|
+
*
|
|
19
|
+
* An absolute URI, for these purposes, consists of a scheme followed by a
|
|
20
|
+
* colon (:) followed by zero or more characters other than ASCII whitespace
|
|
21
|
+
* and control characters, `<`, and `>`. If the URI includes these characters,
|
|
22
|
+
* they must be percent-encoded (e.g. %20 for a space).
|
|
23
|
+
*
|
|
24
|
+
* @see https://github.github.com/gfm/#absolute-uri
|
|
25
|
+
*/
|
|
26
|
+
declare function eatAbsoluteUri(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number): IResultOfRequiredEater;
|
|
27
|
+
/**
|
|
28
|
+
* Try to find to autolink schema strictly start from the give `startIndex`.
|
|
29
|
+
*
|
|
30
|
+
* A scheme is any sequence of 2–32 characters beginning with an ASCII letter
|
|
31
|
+
* and followed by any combination of ASCII letters, digits, or the symbols
|
|
32
|
+
* plus (`+`), period (`.`), or hyphen (`-`).
|
|
33
|
+
*
|
|
34
|
+
* @see https://github.github.com/gfm/#scheme
|
|
35
|
+
*/
|
|
36
|
+
declare function eatAutolinkSchema(nodePoints: ReadonlyArray<INodePoint>, startIndex: number, endIndex: number): IResultOfRequiredEater;
|
|
37
|
+
|
|
38
|
+
declare type AutolinkContentType = 'uri' | 'email';
|
|
39
|
+
declare type T = LinkType;
|
|
40
|
+
declare type INode = Link;
|
|
41
|
+
declare const uniqueName = "@yozora/tokenizer-autolink";
|
|
42
|
+
interface IToken extends IPartialYastInlineToken<T> {
|
|
43
|
+
/**
|
|
44
|
+
* Autolink content type: absolute uri or email.
|
|
45
|
+
*/
|
|
46
|
+
contentType: AutolinkContentType;
|
|
47
|
+
}
|
|
48
|
+
interface IDelimiter extends IYastTokenDelimiter {
|
|
49
|
+
type: 'full';
|
|
50
|
+
/**
|
|
51
|
+
* Autolink content type: absolute uri or email.
|
|
52
|
+
*/
|
|
53
|
+
contentType: AutolinkContentType;
|
|
54
|
+
}
|
|
55
|
+
declare type IThis = ITokenizer;
|
|
56
|
+
declare type ITokenizerProps = Partial<IBaseInlineTokenizerProps>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Autolinks are absolute URIs and email addresses inside '<' and '>'.
|
|
60
|
+
* They are parsed as links, with the URL or email address as the link label.
|
|
61
|
+
*
|
|
62
|
+
* @see https://github.github.com/gfm/#autolink
|
|
63
|
+
*/
|
|
64
|
+
declare const match: IMatchInlineHookCreator<T, IDelimiter, IToken, IThis>;
|
|
65
|
+
|
|
66
|
+
declare const parse: IParseInlineHookCreator<T, IToken, INode, IThis>;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Lexical Analyzer for Autolink.
|
|
70
|
+
* @see https://github.github.com/gfm/#autolink
|
|
71
|
+
*/
|
|
72
|
+
declare class AutolinkTokenizer extends BaseInlineTokenizer<T, IDelimiter, IToken, INode, IThis> implements IInlineTokenizer<T, IDelimiter, IToken, INode, IThis> {
|
|
73
|
+
constructor(props?: ITokenizerProps);
|
|
74
|
+
readonly match: IMatchInlineHookCreator<T, IDelimiter, IToken, IThis>;
|
|
75
|
+
readonly parse: IParseInlineHookCreator<T, IToken, INode, IThis>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { AutolinkContentType, AutolinkTokenizer, uniqueName as AutolinkTokenizerName, IThis as IAutolinkHookContext, IToken as IAutolinkToken, ITokenizerProps as IAutolinkTokenizerProps, match as autolinkMatch, parse as autolinkParse, AutolinkTokenizer as default, eatAbsoluteUri, eatAutolinkSchema, eatEmailAddress };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yozora/tokenizer-autolink",
|
|
3
|
-
"version": "2.0.2
|
|
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/autolink"
|
|
12
12
|
},
|
|
13
|
-
"homepage": "https://
|
|
13
|
+
"homepage": "https://github.com/yozorajs/yozora/tree/release-2.x.x/tokenizers/autolink",
|
|
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": ">=
|
|
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
|
|
39
|
-
"@yozora/character": "^2.0.2
|
|
40
|
-
"@yozora/core-tokenizer": "^2.0.2
|
|
38
|
+
"@yozora/ast": "^2.0.2",
|
|
39
|
+
"@yozora/character": "^2.0.2",
|
|
40
|
+
"@yozora/core-tokenizer": "^2.0.2"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "6911295e9eacfa29563fe93494704190e50625fd"
|
|
43
43
|
}
|