@yozora/tokenizer-image 1.2.2 → 1.3.0
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/lib/cjs/index.js +9 -6
- package/lib/esm/index.js +9 -6
- package/lib/types/tokenizer.d.ts +5 -6
- package/package.json +6 -6
package/lib/cjs/index.js
CHANGED
|
@@ -31,7 +31,8 @@ class ImageTokenizer extends coreTokenizer.BaseInlineTokenizer {
|
|
|
31
31
|
priority: (_b = props.priority) !== null && _b !== void 0 ? _b : coreTokenizer.TokenizerPriority.LINKS,
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
-
_findDelimiter(startIndex, endIndex,
|
|
34
|
+
_findDelimiter(startIndex, endIndex, api) {
|
|
35
|
+
const nodePoints = api.getNodePoints();
|
|
35
36
|
const blockEndIndex = api.getBlockEndIndex();
|
|
36
37
|
for (let i = startIndex; i < endIndex; ++i) {
|
|
37
38
|
const c = nodePoints[i].codePoint;
|
|
@@ -89,7 +90,8 @@ class ImageTokenizer extends coreTokenizer.BaseInlineTokenizer {
|
|
|
89
90
|
}
|
|
90
91
|
return null;
|
|
91
92
|
}
|
|
92
|
-
isDelimiterPair(openerDelimiter, closerDelimiter, internalTokens,
|
|
93
|
+
isDelimiterPair(openerDelimiter, closerDelimiter, internalTokens, api) {
|
|
94
|
+
const nodePoints = api.getNodePoints();
|
|
93
95
|
const balancedBracketsStatus = tokenizerLink.checkBalancedBracketsStatus(openerDelimiter.endIndex, closerDelimiter.startIndex, internalTokens, nodePoints);
|
|
94
96
|
switch (balancedBracketsStatus) {
|
|
95
97
|
case -1:
|
|
@@ -100,18 +102,19 @@ class ImageTokenizer extends coreTokenizer.BaseInlineTokenizer {
|
|
|
100
102
|
return { paired: false, opener: true, closer: false };
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
|
-
processDelimiterPair(openerDelimiter, closerDelimiter, internalTokens,
|
|
105
|
+
processDelimiterPair(openerDelimiter, closerDelimiter, internalTokens, api) {
|
|
104
106
|
const token = {
|
|
105
107
|
nodeType: ast.ImageType,
|
|
106
108
|
startIndex: openerDelimiter.startIndex,
|
|
107
109
|
endIndex: closerDelimiter.endIndex,
|
|
108
110
|
destinationContent: closerDelimiter.destinationContent,
|
|
109
111
|
titleContent: closerDelimiter.titleContent,
|
|
110
|
-
children: api.resolveInternalTokens(internalTokens, openerDelimiter.endIndex, closerDelimiter.startIndex
|
|
112
|
+
children: api.resolveInternalTokens(internalTokens, openerDelimiter.endIndex, closerDelimiter.startIndex),
|
|
111
113
|
};
|
|
112
114
|
return { tokens: [token] };
|
|
113
115
|
}
|
|
114
|
-
|
|
116
|
+
parseInline(token, children, api) {
|
|
117
|
+
const nodePoints = api.getNodePoints();
|
|
115
118
|
let url = '';
|
|
116
119
|
if (token.destinationContent != null) {
|
|
117
120
|
let { startIndex, endIndex } = token.destinationContent;
|
|
@@ -122,7 +125,7 @@ class ImageTokenizer extends coreTokenizer.BaseInlineTokenizer {
|
|
|
122
125
|
const destination = character.calcEscapedStringFromNodePoints(nodePoints, startIndex, endIndex, true);
|
|
123
126
|
url = coreTokenizer.encodeLinkDestination(destination);
|
|
124
127
|
}
|
|
125
|
-
const alt = calcImageAlt(children
|
|
128
|
+
const alt = calcImageAlt(children);
|
|
126
129
|
let title;
|
|
127
130
|
if (token.titleContent != null) {
|
|
128
131
|
const { startIndex, endIndex } = token.titleContent;
|
package/lib/esm/index.js
CHANGED
|
@@ -27,7 +27,8 @@ class ImageTokenizer extends BaseInlineTokenizer {
|
|
|
27
27
|
priority: (_b = props.priority) !== null && _b !== void 0 ? _b : TokenizerPriority.LINKS,
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
_findDelimiter(startIndex, endIndex,
|
|
30
|
+
_findDelimiter(startIndex, endIndex, api) {
|
|
31
|
+
const nodePoints = api.getNodePoints();
|
|
31
32
|
const blockEndIndex = api.getBlockEndIndex();
|
|
32
33
|
for (let i = startIndex; i < endIndex; ++i) {
|
|
33
34
|
const c = nodePoints[i].codePoint;
|
|
@@ -85,7 +86,8 @@ class ImageTokenizer extends BaseInlineTokenizer {
|
|
|
85
86
|
}
|
|
86
87
|
return null;
|
|
87
88
|
}
|
|
88
|
-
isDelimiterPair(openerDelimiter, closerDelimiter, internalTokens,
|
|
89
|
+
isDelimiterPair(openerDelimiter, closerDelimiter, internalTokens, api) {
|
|
90
|
+
const nodePoints = api.getNodePoints();
|
|
89
91
|
const balancedBracketsStatus = checkBalancedBracketsStatus(openerDelimiter.endIndex, closerDelimiter.startIndex, internalTokens, nodePoints);
|
|
90
92
|
switch (balancedBracketsStatus) {
|
|
91
93
|
case -1:
|
|
@@ -96,18 +98,19 @@ class ImageTokenizer extends BaseInlineTokenizer {
|
|
|
96
98
|
return { paired: false, opener: true, closer: false };
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
|
-
processDelimiterPair(openerDelimiter, closerDelimiter, internalTokens,
|
|
101
|
+
processDelimiterPair(openerDelimiter, closerDelimiter, internalTokens, api) {
|
|
100
102
|
const token = {
|
|
101
103
|
nodeType: ImageType,
|
|
102
104
|
startIndex: openerDelimiter.startIndex,
|
|
103
105
|
endIndex: closerDelimiter.endIndex,
|
|
104
106
|
destinationContent: closerDelimiter.destinationContent,
|
|
105
107
|
titleContent: closerDelimiter.titleContent,
|
|
106
|
-
children: api.resolveInternalTokens(internalTokens, openerDelimiter.endIndex, closerDelimiter.startIndex
|
|
108
|
+
children: api.resolveInternalTokens(internalTokens, openerDelimiter.endIndex, closerDelimiter.startIndex),
|
|
107
109
|
};
|
|
108
110
|
return { tokens: [token] };
|
|
109
111
|
}
|
|
110
|
-
|
|
112
|
+
parseInline(token, children, api) {
|
|
113
|
+
const nodePoints = api.getNodePoints();
|
|
111
114
|
let url = '';
|
|
112
115
|
if (token.destinationContent != null) {
|
|
113
116
|
let { startIndex, endIndex } = token.destinationContent;
|
|
@@ -118,7 +121,7 @@ class ImageTokenizer extends BaseInlineTokenizer {
|
|
|
118
121
|
const destination = calcEscapedStringFromNodePoints(nodePoints, startIndex, endIndex, true);
|
|
119
122
|
url = encodeLinkDestination(destination);
|
|
120
123
|
}
|
|
121
|
-
const alt = calcImageAlt(children
|
|
124
|
+
const alt = calcImageAlt(children);
|
|
122
125
|
let title;
|
|
123
126
|
if (token.titleContent != null) {
|
|
124
127
|
const { startIndex, endIndex } = token.titleContent;
|
package/lib/types/tokenizer.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { YastNode } from '@yozora/ast';
|
|
2
|
-
import type {
|
|
3
|
-
import type { MatchInlinePhaseApi, ResultOfIsDelimiterPair, ResultOfProcessDelimiterPair, Tokenizer, TokenizerMatchInlineHook, TokenizerParseInlineHook, YastInlineToken } from '@yozora/core-tokenizer';
|
|
2
|
+
import type { MatchInlinePhaseApi, ParseInlinePhaseApi, ResultOfIsDelimiterPair, ResultOfProcessDelimiterPair, Tokenizer, TokenizerMatchInlineHook, TokenizerParseInlineHook, YastInlineToken } from '@yozora/core-tokenizer';
|
|
4
3
|
import { BaseInlineTokenizer } from '@yozora/core-tokenizer';
|
|
5
4
|
import type { Delimiter, Node, T, Token, TokenizerProps } from './types';
|
|
6
5
|
/**
|
|
@@ -50,20 +49,20 @@ export declare class ImageTokenizer extends BaseInlineTokenizer<Delimiter> imple
|
|
|
50
49
|
* @override
|
|
51
50
|
* @see TokenizerMatchInlineHook
|
|
52
51
|
*/
|
|
53
|
-
protected _findDelimiter(startIndex: number, endIndex: number,
|
|
52
|
+
protected _findDelimiter(startIndex: number, endIndex: number, api: Readonly<MatchInlinePhaseApi>): Delimiter | null;
|
|
54
53
|
/**
|
|
55
54
|
* @override
|
|
56
55
|
* @see TokenizerMatchInlineHook
|
|
57
56
|
*/
|
|
58
|
-
isDelimiterPair(openerDelimiter: Delimiter, closerDelimiter: Delimiter, internalTokens: ReadonlyArray<YastInlineToken>,
|
|
57
|
+
isDelimiterPair(openerDelimiter: Delimiter, closerDelimiter: Delimiter, internalTokens: ReadonlyArray<YastInlineToken>, api: Readonly<MatchInlinePhaseApi>): ResultOfIsDelimiterPair;
|
|
59
58
|
/**
|
|
60
59
|
* @override
|
|
61
60
|
* @see TokenizerMatchInlineHook
|
|
62
61
|
*/
|
|
63
|
-
processDelimiterPair(openerDelimiter: Delimiter, closerDelimiter: Delimiter, internalTokens: ReadonlyArray<YastInlineToken>,
|
|
62
|
+
processDelimiterPair(openerDelimiter: Delimiter, closerDelimiter: Delimiter, internalTokens: ReadonlyArray<YastInlineToken>, api: Readonly<MatchInlinePhaseApi>): ResultOfProcessDelimiterPair<T, Token, Delimiter>;
|
|
64
63
|
/**
|
|
65
64
|
* @override
|
|
66
65
|
* @see TokenizerParseInlineHook
|
|
67
66
|
*/
|
|
68
|
-
|
|
67
|
+
parseInline(token: Token, children: YastNode[], api: Readonly<ParseInlinePhaseApi>): Node;
|
|
69
68
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yozora/tokenizer-image",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "guanghechen",
|
|
6
6
|
"url": "https://github.com/guanghechen/"
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"test": "cross-env TS_NODE_FILES=true jest --config ../../jest.config.js --rootDir ."
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@yozora/ast": "^1.
|
|
39
|
-
"@yozora/character": "^1.
|
|
40
|
-
"@yozora/core-tokenizer": "^1.
|
|
41
|
-
"@yozora/tokenizer-link": "^1.
|
|
38
|
+
"@yozora/ast": "^1.3.0",
|
|
39
|
+
"@yozora/character": "^1.3.0",
|
|
40
|
+
"@yozora/core-tokenizer": "^1.3.0",
|
|
41
|
+
"@yozora/tokenizer-link": "^1.3.0"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "18c9b167004ad97718b2f94f25139f80598cbf7a"
|
|
44
44
|
}
|