marked 7.0.1 → 7.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/lib/marked.umd.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * marked v7.0.1 - a markdown parser
2
+ * marked v7.0.2 - a markdown parser
3
3
  * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
4
4
  * https://github.com/markedjs/marked
5
5
  */
@@ -195,12 +195,14 @@
195
195
  if (cells.length > 0 && !cells[cells.length - 1].trim()) {
196
196
  cells.pop();
197
197
  }
198
- if (cells.length > count) {
199
- cells.splice(count);
200
- }
201
- else {
202
- while (cells.length < count)
203
- cells.push('');
198
+ if (count) {
199
+ if (cells.length > count) {
200
+ cells.splice(count);
201
+ }
202
+ else {
203
+ while (cells.length < count)
204
+ cells.push('');
205
+ }
204
206
  }
205
207
  for (; i < cells.length; i++) {
206
208
  // leading or trailing whitespace is ignored per the gfm spec
@@ -633,8 +635,7 @@
633
635
  if (cap) {
634
636
  const item = {
635
637
  type: 'table',
636
- // splitCells expects a number as second argument
637
- // @ts-expect-error
638
+ raw: cap[0],
638
639
  header: splitCells(cap[1]).map(c => {
639
640
  return { text: c };
640
641
  }),
@@ -642,7 +643,6 @@
642
643
  rows: cap[3] && cap[3].trim() ? cap[3].replace(/\n[ \t]*$/, '').split('\n') : []
643
644
  };
644
645
  if (item.header.length === item.align.length) {
645
- item.raw = cap[0];
646
646
  let l = item.align.length;
647
647
  let i, j, k, row;
648
648
  for (i = 0; i < l; i++) {
@@ -1412,7 +1412,10 @@
1412
1412
  return leading + ' '.repeat(tabs.length);
1413
1413
  });
1414
1414
  }
1415
- let token, lastToken, cutSrc, lastParagraphClipped;
1415
+ let token;
1416
+ let lastToken;
1417
+ let cutSrc;
1418
+ let lastParagraphClipped;
1416
1419
  while (src) {
1417
1420
  if (this.options.extensions
1418
1421
  && this.options.extensions.block
@@ -2262,6 +2265,7 @@
2262
2265
  default: {
2263
2266
  if (this.defaults.extensions && this.defaults.extensions.childTokens && this.defaults.extensions.childTokens[token.type]) { // Walk any extensions
2264
2267
  this.defaults.extensions.childTokens[token.type].forEach((childTokens) => {
2268
+ // @ts-expect-error we assume token[childToken] is an array of tokens but we can't be sure
2265
2269
  values = values.concat(this.walkTokens(token[childTokens], callback));
2266
2270
  });
2267
2271
  }
@@ -2341,14 +2345,16 @@
2341
2345
  if (pack.renderer) {
2342
2346
  const renderer = this.defaults.renderer || new _Renderer(this.defaults);
2343
2347
  for (const prop in pack.renderer) {
2344
- const prevRenderer = renderer[prop];
2348
+ const rendererFunc = pack.renderer[prop];
2349
+ const rendererKey = prop;
2350
+ const prevRenderer = renderer[rendererKey];
2345
2351
  // Replace renderer with func to run extension, but fall back if false
2346
- renderer[prop] = (...args) => {
2347
- let ret = pack.renderer[prop].apply(renderer, args);
2352
+ renderer[rendererKey] = (...args) => {
2353
+ let ret = rendererFunc.apply(renderer, args);
2348
2354
  if (ret === false) {
2349
2355
  ret = prevRenderer.apply(renderer, args);
2350
2356
  }
2351
- return ret;
2357
+ return ret || '';
2352
2358
  };
2353
2359
  }
2354
2360
  opts.renderer = renderer;
@@ -2356,10 +2362,12 @@
2356
2362
  if (pack.tokenizer) {
2357
2363
  const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);
2358
2364
  for (const prop in pack.tokenizer) {
2359
- const prevTokenizer = tokenizer[prop];
2365
+ const tokenizerFunc = pack.tokenizer[prop];
2366
+ const tokenizerKey = prop;
2367
+ const prevTokenizer = tokenizer[tokenizerKey];
2360
2368
  // Replace tokenizer with func to run extension, but fall back if false
2361
- tokenizer[prop] = (...args) => {
2362
- let ret = pack.tokenizer[prop].apply(tokenizer, args);
2369
+ tokenizer[tokenizerKey] = (...args) => {
2370
+ let ret = tokenizerFunc.apply(tokenizer, args);
2363
2371
  if (ret === false) {
2364
2372
  ret = prevTokenizer.apply(tokenizer, args);
2365
2373
  }
@@ -2372,21 +2380,23 @@
2372
2380
  if (pack.hooks) {
2373
2381
  const hooks = this.defaults.hooks || new _Hooks();
2374
2382
  for (const prop in pack.hooks) {
2375
- const prevHook = hooks[prop];
2383
+ const hooksFunc = pack.hooks[prop];
2384
+ const hooksKey = prop;
2385
+ const prevHook = hooks[hooksKey];
2376
2386
  if (_Hooks.passThroughHooks.has(prop)) {
2377
- hooks[prop] = (arg) => {
2387
+ hooks[hooksKey] = (arg) => {
2378
2388
  if (this.defaults.async) {
2379
- return Promise.resolve(pack.hooks[prop].call(hooks, arg)).then(ret => {
2389
+ return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {
2380
2390
  return prevHook.call(hooks, ret);
2381
2391
  });
2382
2392
  }
2383
- const ret = pack.hooks[prop].call(hooks, arg);
2393
+ const ret = hooksFunc.call(hooks, arg);
2384
2394
  return prevHook.call(hooks, ret);
2385
2395
  };
2386
2396
  }
2387
2397
  else {
2388
- hooks[prop] = (...args) => {
2389
- let ret = pack.hooks[prop].apply(hooks, args);
2398
+ hooks[hooksKey] = (...args) => {
2399
+ let ret = hooksFunc.apply(hooks, args);
2390
2400
  if (ret === false) {
2391
2401
  ret = prevHook.apply(hooks, args);
2392
2402
  }