@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 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, nodePoints, api) {
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, nodePoints) {
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, nodePoints, api) {
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, nodePoints),
112
+ children: api.resolveInternalTokens(internalTokens, openerDelimiter.endIndex, closerDelimiter.startIndex),
111
113
  };
112
114
  return { tokens: [token] };
113
115
  }
114
- processToken(token, children, nodePoints) {
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, nodePoints, api) {
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, nodePoints) {
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, nodePoints, api) {
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, nodePoints),
108
+ children: api.resolveInternalTokens(internalTokens, openerDelimiter.endIndex, closerDelimiter.startIndex),
107
109
  };
108
110
  return { tokens: [token] };
109
111
  }
110
- processToken(token, children, nodePoints) {
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;
@@ -1,6 +1,5 @@
1
1
  import type { YastNode } from '@yozora/ast';
2
- import type { NodePoint } from '@yozora/character';
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, nodePoints: ReadonlyArray<NodePoint>, api: Readonly<MatchInlinePhaseApi>): Delimiter | null;
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>, nodePoints: ReadonlyArray<NodePoint>): ResultOfIsDelimiterPair;
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>, nodePoints: ReadonlyArray<NodePoint>, api: Readonly<MatchInlinePhaseApi>): ResultOfProcessDelimiterPair<T, Token, Delimiter>;
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
- processToken(token: Token, children: YastNode[] | undefined, nodePoints: ReadonlyArray<NodePoint>): Node;
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.2.2",
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.2.2",
39
- "@yozora/character": "^1.2.2",
40
- "@yozora/core-tokenizer": "^1.2.2",
41
- "@yozora/tokenizer-link": "^1.2.2"
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": "fb4b804548592c09259aabcf9cc4dd96176bd024"
43
+ "gitHead": "18c9b167004ad97718b2f94f25139f80598cbf7a"
44
44
  }