首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户定义的呈现器对象将导致TypeError - marked.js。

用户定义的呈现器对象将导致TypeError - marked.js。
EN

Stack Overflow用户
提问于 2022-03-28 02:37:54
回答 1查看 80关注 0票数 0

现在,我正在熟悉marked.js。我希望向调用marked.parse()时呈现的元素添加html属性。在此过程中,定义了一个自定义renderer对象,该对象覆盖code方法。

renderer对象被传递给marked.parse(string, {'renderer': renderer})时,我开始键入marked.js应该解析的TextArea,引发以下错误:

  • Uncaught TypeError: t.text is not a function

pro#renderer

呈现器定义给定令牌的HTML输出。如果向标记选项提供呈现器对象,则它将与内置呈现器合并,内部的任何函数都将覆盖该令牌类型的默认处理。

是什么导致引发此错误?

代码语言:javascript
复制
const renderer = {
  code(code, infoString) {
    return `
      <code class="block_code_snippet fill_block_width">${string}</code
    `
  },
};
代码语言:javascript
复制
post_content_body.addEventListener("keyup", (event) => {
  let marked_post_content = marked.parse(
    post_content_body.value, {"renderer": renderer}
  );
  post_preview.innerHTML = marked_post_content
})
EN

回答 1

Stack Overflow用户

发布于 2022-04-25 14:10:49

我相信传入的呈现器对象不会与默认呈现器合并,而是完全替换它。结果,渲染器只处理代码,但失去了所有其他渲染功能--参见“块级呈现器方法”和“内联级呈现器方法”这里

尝试将代码更改为如下所示:

代码语言:javascript
复制
const renderer = new marked.Renderer();
renderer.code = function(code, infoString) {
  return `
    <code class="block_code_snippet fill_block_width">${string}</code
  `
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71641865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档