@fullstackdatasolutions/articles 1.1.0 → 1.2.1

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/dist/server.js CHANGED
@@ -365,7 +365,7 @@ function markdownToHtml(markdown, articleSlug, config) {
365
365
  if (articleSlug) {
366
366
  processor = processor.use(rehypeProcessImages, { articleSlug });
367
367
  }
368
- const result = yield processor.use(rehypeStringify).process(markdown);
368
+ const result = yield processor.use(rehypeStringify).process(stripInlineTagsFromHeadings(markdown));
369
369
  return result.toString();
370
370
  } catch (error) {
371
371
  reportArticlesError({
@@ -378,8 +378,18 @@ function markdownToHtml(markdown, articleSlug, config) {
378
378
  }
379
379
  });
380
380
  }
381
+ function stripInlineTagsFromHeadings(markdown) {
382
+ return markdown.replace(
383
+ /^(#{1,6}[ \t].*)$/gm,
384
+ (line) => line.replace(/<\/?[a-zA-Z][^<>\n]*>/g, "")
385
+ );
386
+ }
381
387
  function nodeTextValue(c) {
382
- return c.type === "text" ? c.value : "";
388
+ if (c.type === "text") return c.value;
389
+ if (c.type === "element" && "children" in c) {
390
+ return c.children.map(nodeTextValue).join("");
391
+ }
392
+ return "";
383
393
  }
384
394
  function extractHeadingItem(node) {
385
395
  var _a;
@@ -415,7 +425,7 @@ function extractToc(markdown) {
415
425
  if (item) headings.push(item);
416
426
  });
417
427
  };
418
- yield remark().use(remarkParse).use(remarkGfm).use(remarkRehype).use(rehypeSlug).use(collectHeadings).use(rehypeStringify).process(markdown);
428
+ yield remark().use(remarkParse).use(remarkGfm).use(remarkRehype).use(rehypeSlug).use(collectHeadings).use(rehypeStringify).process(stripInlineTagsFromHeadings(markdown));
419
429
  return headings;
420
430
  });
421
431
  }