marked highlight:“highlight”不在类型“MarkedOptions”中

文章讲述了如何在使用marked处理Markdown时,通过设置extensions的renderers属性覆盖`code`块的渲染,以实现代码高亮。另外还提到可以使用hljs.highlightElement方法独立进行代码高亮处理。
摘要由CSDN通过智能技术生成

问题描述

网上有大量的帖子和例子使用marked和highlight时使用了highlight传入函数来高亮显示代码

但是事实上我在使用时没有这个对象

解决办法

我们可以在marked的扩展选项extensions中覆盖对"code"代码块的处理

marked.setOptions({
        renderer: renderer,
        gfm: true,
        pedantic: false,
        breaks: false,
        extensions:{
            renderers:{
                ["code"]:function(code:any){
                    return "<pre class='code'><code class=language "+code.lang+">"+hljs.highlight(code.text,{language:code.lang}).value+"</code></pre>"
                }
            },
            childTokens:{
                
            }
        }
    });
备注

extensions 扩展选项中的renderers可以对原来的处理进行覆盖

'code'表示对代码块进行处理,感兴趣的可以去翻看其他的选项,通过修改可以做很多事情

其他方法:

我们可以不改变marked的输出

然后代码块获取后用hljs.highlightElement(element)方法对改变后的代码高亮显示

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: marked是一个用于将 Markdown 格式文本转换为 HTML 的 JavaScript 库。 它提供了一个 `marked` 函数,接受一个字符串作为参数,并返回经过转换的 HTML 代码。 marked 支持传入一个选项对象来自定义转换过程,常用的选项参数包括: - `breaks`:设为 true 后,将换行符视为新的段落。 - `gfm`:设为 true 后,启用 GitHub Flavored Markdown,会支持表格、task lists 等特性。 - `headerIds`:设为 true 后,在标题元素(如 h1、h2 等)添加 id 属性,用于生成锚点链接。 - `langPrefix`:设置代码块的语言前缀,用于指定语言高亮样式。 - `sanitize`:设为 true 后,对输出的 HTML 代码进行过滤,防止输出恶意内容。 - `smartLists`:设为 true 后,会自动给列表添加省略号,表示列表项过多。 - `smartypants`:设为 true 后,会自动给破折号、单双引号等字符转换成 “智能” 版本,如破折号会被转换成 HTML 实体。 ### 回答2: 在markedoptions参数主要用于配置和定制Markdown的解析行为。下面是一些主要的options参数及其作用: 1. `gfm`(默认值:true):该选项启用了GitHub Flavored Markdown(GFM)的支持,例如自动横线、表格、任务列表等。 2. `breaks`(默认值:false):当该选项设置为true时,解析器会将单个换行符视为<br>标签,从而支持单个换行符实现换行的效果。 3. `pedantic`(默认值:false):当该选项设置为true时,解析器会更加严格地遵循Markdown语法的规范,不容忍一些不符合规范的写法。 4. `sanitize`(默认值:false):当该选项设置为true时,解析器会将HTML标签自动转义,防止XSS攻击。 5. `smartLists`(默认值:true):该选项启用了智能列表功能,可以自动识别有序列表和无序列表。 6. `smartypants`(默认值:false):当该选项设置为true时,解析器会将引号和破折号自动替换为对应的HTML实体,例如将 " 替换为 “。 7. `langPrefix`(默认值:'language-'):该选项定义了代码块的语言前缀,用于语法高亮显示。 8. `highlight`(默认值:null):该选项用于自定义代码块的语法高亮显示。 以上仅是一部分常用的options参数,通过调整这些参数以及其他参数,可以灵活地配置和适应不同的Markdown解析需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值