@diplodoc/transform 4.50.1 → 4.50.3

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.
@@ -85,16 +85,16 @@ function processLink(md, state, tokens, idx, opts) {
85
85
  const currentPath = state.env.path || startPath;
86
86
  const linkToken = tokens[idx];
87
87
  const nextToken = tokens[idx + 1];
88
- let href = (0, utils_1.getHrefTokenAttr)(linkToken);
89
- if (!href) {
88
+ const originalHref = (0, utils_1.getHrefTokenAttr)(linkToken);
89
+ if (!originalHref) {
90
90
  log.error(`Empty link in ${(0, chalk_1.bold)(startPath)}`);
91
91
  return;
92
92
  }
93
- const { pathname, hash } = url_1.default.parse(href);
93
+ const { pathname, hash } = url_1.default.parse(originalHref);
94
94
  let file;
95
95
  let fileExists;
96
96
  let isPageFile;
97
- if (!(0, utils_1.isLocalUrl)(href)) {
97
+ if (!(0, utils_1.isLocalUrl)(originalHref)) {
98
98
  linkToken.attrSet('target', '_blank');
99
99
  linkToken.attrSet('rel', 'noreferrer noopener');
100
100
  return;
@@ -106,13 +106,13 @@ function processLink(md, state, tokens, idx, opts) {
106
106
  if (isPageFile && !fileExists) {
107
107
  let needShowError = true;
108
108
  if (needSkipLinkFn) {
109
- needShowError = !needSkipLinkFn(href);
109
+ needShowError = !needSkipLinkFn(originalHref);
110
110
  }
111
111
  if (notFoundCb && needShowError) {
112
112
  notFoundCb(file.replace(root, ''));
113
113
  }
114
114
  if (needShowError) {
115
- log.error(`Link is unreachable: ${(0, chalk_1.bold)(href)} in ${(0, chalk_1.bold)(currentPath)}`);
115
+ log.error(`Link is unreachable: ${(0, chalk_1.bold)(originalHref)} in ${(0, chalk_1.bold)(currentPath)}`);
116
116
  }
117
117
  }
118
118
  }
@@ -139,24 +139,21 @@ function processLink(md, state, tokens, idx, opts) {
139
139
  tokens,
140
140
  idx,
141
141
  nextToken,
142
- href,
142
+ href: originalHref,
143
143
  currentPath,
144
144
  log,
145
145
  cache,
146
146
  });
147
147
  }
148
- let newPathname = '';
149
- if (!(0, path_1.isAbsolute)(href) && !href.includes('//')) {
150
- newPathname = getPublicPath(opts, file);
151
- href = url_1.default.format(Object.assign(Object.assign({}, url_1.default.parse(href)), { pathname: newPathname }));
152
- }
153
- if (pathname || newPathname) {
154
- const transformer = transformLink || utils_1.defaultTransformLink;
155
- linkToken.attrSet('href', transformer(href));
156
- }
148
+ const patchedHref = !(0, path_1.isAbsolute)(originalHref) && !originalHref.includes('//')
149
+ ? url_1.default.format(Object.assign(Object.assign({}, url_1.default.parse(originalHref)), { pathname: getPublicPath(opts, file) }))
150
+ : originalHref;
151
+ const linkHrefTransformer = transformLink || utils_1.defaultTransformLink;
152
+ linkToken.attrSet('href', linkHrefTransformer(patchedHref));
157
153
  }
158
154
  const index = (md, opts) => {
159
155
  const plugin = (state) => {
156
+ var _a, _b;
160
157
  const tokens = state.tokens;
161
158
  let i = 0;
162
159
  while (i < tokens.length) {
@@ -164,12 +161,16 @@ const index = (md, opts) => {
164
161
  const childrenTokens = tokens[i].children || [];
165
162
  let j = 0;
166
163
  while (j < childrenTokens.length) {
167
- const isLinkOpenToken = childrenTokens[j].type === 'link_open';
168
- const tokenClass = childrenTokens[j].attrGet('class');
164
+ const token = childrenTokens[j];
165
+ const isLinkOpenToken = token.type === 'link_open';
166
+ const tokenClass = token.attrGet('class');
169
167
  /* Don't process anchor links */
170
168
  const isYfmAnchor = tokenClass ? tokenClass.includes('yfm-anchor') : false;
171
- if (isLinkOpenToken && !isYfmAnchor) {
169
+ const wasProcessedBefore = Boolean((_a = token.meta) === null || _a === void 0 ? void 0 : _a.yfmLinkPluginProcessed);
170
+ if (isLinkOpenToken && !wasProcessedBefore && !isYfmAnchor) {
172
171
  processLink(md, state, childrenTokens, j, opts);
172
+ (_b = token.meta) !== null && _b !== void 0 ? _b : (token.meta = {});
173
+ token.meta.yfmLinkPluginProcessed = true;
173
174
  }
174
175
  j++;
175
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/links/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/links/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/transform",
3
- "version": "4.50.1",
3
+ "version": "4.50.3",
4
4
  "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
5
5
  "keywords": [
6
6
  "markdown",
@@ -100,6 +100,7 @@
100
100
  svg {
101
101
  box-sizing: content-box;
102
102
  max-width: 100%;
103
+ max-height: fit-content;
103
104
  border: none;
104
105
  vertical-align: middle;
105
106
 
@@ -144,19 +144,19 @@ function processLink(
144
144
  const linkToken = tokens[idx];
145
145
  const nextToken = tokens[idx + 1];
146
146
 
147
- let href = getHrefTokenAttr(linkToken);
147
+ const originalHref = getHrefTokenAttr(linkToken);
148
148
 
149
- if (!href) {
149
+ if (!originalHref) {
150
150
  log.error(`Empty link in ${bold(startPath)}`);
151
151
  return;
152
152
  }
153
153
 
154
- const {pathname, hash} = url.parse(href);
154
+ const {pathname, hash} = url.parse(originalHref);
155
155
  let file;
156
156
  let fileExists;
157
157
  let isPageFile;
158
158
 
159
- if (!isLocalUrl(href)) {
159
+ if (!isLocalUrl(originalHref)) {
160
160
  linkToken.attrSet('target', '_blank');
161
161
  linkToken.attrSet('rel', 'noreferrer noopener');
162
162
  return;
@@ -170,7 +170,7 @@ function processLink(
170
170
  if (isPageFile && !fileExists) {
171
171
  let needShowError = true;
172
172
  if (needSkipLinkFn) {
173
- needShowError = !needSkipLinkFn(href);
173
+ needShowError = !needSkipLinkFn(originalHref);
174
174
  }
175
175
 
176
176
  if (notFoundCb && needShowError) {
@@ -178,7 +178,7 @@ function processLink(
178
178
  }
179
179
 
180
180
  if (needShowError) {
181
- log.error(`Link is unreachable: ${bold(href)} in ${bold(currentPath)}`);
181
+ log.error(`Link is unreachable: ${bold(originalHref)} in ${bold(currentPath)}`);
182
182
  }
183
183
  }
184
184
  } else if (hash) {
@@ -206,28 +206,23 @@ function processLink(
206
206
  tokens,
207
207
  idx,
208
208
  nextToken,
209
- href,
209
+ href: originalHref,
210
210
  currentPath,
211
211
  log,
212
212
  cache,
213
213
  });
214
214
  }
215
215
 
216
- let newPathname = '';
216
+ const patchedHref =
217
+ !isAbsolute(originalHref) && !originalHref.includes('//')
218
+ ? url.format({
219
+ ...url.parse(originalHref),
220
+ pathname: getPublicPath(opts, file),
221
+ })
222
+ : originalHref;
223
+ const linkHrefTransformer = transformLink || defaultTransformLink;
217
224
 
218
- if (!isAbsolute(href) && !href.includes('//')) {
219
- newPathname = getPublicPath(opts, file);
220
-
221
- href = url.format({
222
- ...url.parse(href),
223
- pathname: newPathname,
224
- });
225
- }
226
-
227
- if (pathname || newPathname) {
228
- const transformer = transformLink || defaultTransformLink;
229
- linkToken.attrSet('href', transformer(href));
230
- }
225
+ linkToken.attrSet('href', linkHrefTransformer(patchedHref));
231
226
  }
232
227
 
233
228
  const index: MarkdownItPluginCb<ProcOpts & Options> = (md: MarkdownItIncluded, opts) => {
@@ -241,14 +236,20 @@ const index: MarkdownItPluginCb<ProcOpts & Options> = (md: MarkdownItIncluded, o
241
236
  let j = 0;
242
237
 
243
238
  while (j < childrenTokens.length) {
244
- const isLinkOpenToken = childrenTokens[j].type === 'link_open';
245
- const tokenClass = childrenTokens[j].attrGet('class');
239
+ const token = childrenTokens[j];
240
+
241
+ const isLinkOpenToken = token.type === 'link_open';
242
+ const tokenClass = token.attrGet('class');
246
243
 
247
244
  /* Don't process anchor links */
248
245
  const isYfmAnchor = tokenClass ? tokenClass.includes('yfm-anchor') : false;
246
+ const wasProcessedBefore = Boolean(token.meta?.yfmLinkPluginProcessed);
249
247
 
250
- if (isLinkOpenToken && !isYfmAnchor) {
248
+ if (isLinkOpenToken && !wasProcessedBefore && !isYfmAnchor) {
251
249
  processLink(md, state, childrenTokens, j, opts);
250
+
251
+ token.meta ??= {};
252
+ token.meta.yfmLinkPluginProcessed = true;
252
253
  }
253
254
 
254
255
  j++;