vditor 自定渲染,lute.js api

news2024/12/25 22:07:46

渲染器函数

目前支持的渲染回调场景如下:

即使渲染:IR -> SpinVditorIRDOM
分屏:sv -> SpinVditorSVDOM
所见所得:wysiwyg -> SpinVditorDOM

// 自定义回调 vue 为例子
after: function () {
	this.vditor.vditor.lute.SetJSRenderers({
        renderers: {
          Md2HTML: {
          	 // 关闭硬换行
          	 renderSoftBreak: (node, entering) => {
           		if (entering) {
             		return ['', window.Lute.WalkContinue];
          		}
          		return ['', window.Lute.WalkContinue];
        		},
		  	 },
		  	 // 标题修改
		  	  renderHeading: (node, entering) => {    
        		if (entering) {
              		return [`<h${node.__internal_object__.HeadingLevel} class="vditor__heading"><span class="prefix"></span><span>`, Lute.WalkContinue];
        		} else {
              		return [`</span></h${node.__internal_object__.HeadingLevel}>`,Lute.WalkContinue];
        		}  
			}
        },
    });
}


预览:previewRender

// 预览模式自定义
Vditor.preview(this.$refs.vditor, this.value, {
    renderers: {
         // 关闭硬换行
          	 renderSoftBreak: (node, entering) => {
           		if (entering) {
             		return ['', window.Lute.WalkContinue];
          		}
          		return ['', window.Lute.WalkContinue];
        		},
		  	 },
		  	 // 标题修改
		  	  renderHeading: (node, entering) => {    
        		if (entering) {
              		return [`<h${node.__internal_object__.HeadingLevel} class="vditor__heading"><span class="prefix"></span><span>`, Lute.WalkContinue];
        		} else {
              		return [`</span></h${node.__internal_object__.HeadingLevel}>`,Lute.WalkContinue];
        		}  
			}
    },
});
  • HTML2Md:HTML 转 Markdown,v3.2.0 后改为 HTML2VditorSVDOM。使用场景:
    • options.mode 为 sv 时,初始化编辑器内容
    • 调用 html2md 方法
    • 在 sv 模式粘贴复制好的 HTML 时触发
  • HTML2VditorDOM:HTML 转 Vditor DOM,在 wysiwyg 模式粘贴 HTML 时触发
  • HTML2VditorIRDOM:HTML 转 Vditor IR DOM,在 ir 模式粘贴 HTML 时触发
  • HTML2VditorSVDOM:HTML 转 Vditor SV DOM,在 sv 模式粘贴 HTML 时触发
  • Md2HTML:Markdown 转 HTML,v3.2.0 后改为 Md2VditorSVDOM。使用场景:
    • 调用静态方法 md2html
    • 调用静态方法 previewRender
  • Md2VditorDOM:Markdown 转 Vditor DOM,在 wysiwyg 模式粘贴纯文本时触发
  • Md2VditorIRDOM:Markdown 转 Vditor IR DOM,在 ir 模式粘贴纯文本时触发
  • Md2VditorSVDOM:Markdown 转 Vditor SV DOM,在 sv 模式粘贴纯文本时触发

块级渲染器

  • renderDocument:渲染整个文档
  • renderParagraph:渲染段落
  • renderText:渲染文本
  • renderCodeBlock:渲染代码块,相关渲染器包括 renderCodeBlockOpenMarker、renderCodeBlockInfoMarker、renderCodeBlockCode 和 renderCodeBlockCloseMarker
  • renderMathBlock:渲染数学公式块,相关渲染器包括 renderMathBlockOpenMarker、renderMathBlockContent 和 renderMathBlockCloseMarker
  • renderBlockquote:渲染块引用,相关渲染器包括 renderBlockquoteMarker
  • renderHeading:渲染标题,相关渲染器包括 renderHeadingC8hMarker
  • renderList:渲染列表
  • renderListItem:渲染列表项,相关渲染器包括 renderTaskListItemMarker
  • renderThematicBreak:渲染分隔线
  • renderHTML:渲染 HTML 块
  • renderTable:渲染表格,相关渲染器包括 renderTableHead、renderTableRow 和 renderTableCell
  • renderFootnotesDef:渲染脚注定义块

行级渲染器

  • renderCodeSpan:渲染代码,相关渲染器包括 renderCodeSpanOpenMarker、renderCodeSpanContent 和 renderCodeSpanCloseMarker
  • renderInlineMath:渲染行级数学公式,相关渲染器包括 renderInlineMathOpenMarker、renderInlineMathContent 和 renderInlineMathCloseMarker
  • renderEmphasis:渲染强调,相关渲染器包括 renderEmAsteriskOpenMarker、renderEmAsteriskCloseMarker、renderEmUnderscoreOpenMarker 和 renderEmUnderscoreCloseMarker
  • renderStrong:渲染加粗,相关渲染器包括 renderStrongA6kOpenMarker、renderStrongA6kCloseMarker、renderStrongU8eOpenMarker 和 renderStrongU8eCloseMarker
  • renderStrikethrough:渲染删除线,相关渲染器包括 renderStrikethrough1OpenMarker、renderStrikethrough1CloseMarker、renderStrikethrough2OpenMarker 和 renderStrikethrough2CloseMarker
  • renderHardBreak:渲染硬换行
  • renderSoftBreak:渲染软换行
  • renderInlineHTML:渲染行级 HTML
  • renderLink:渲染链接,相关渲染器包括 renderOpenBracket、renderCloseBracket、renderOpenParen、renderCloseParen、renderLinkText、renderLinkSpace、renderLinkDest 和 renderLinkTitle
  • renderImage:渲染图片,相关渲染器包括 renderBang 和 renderLink
  • renderEmoji:渲染 Emoji,相关渲染器包括 renderEmojiUnicode、renderEmojiImg 和 renderEmojiAlias
  • renderToC:渲染页内目录
  • renderFootnotesRef:渲染脚注引用
  • renderBackslash:渲染反斜杆,相关渲染器包括 renderBackslashContent

渲染器函数 node 参数api

在这里插入图片描述

  • AcceptLines 判断是否节点是否可以接受更多的文本行。比如 HTML 块、代码块和段落是可以接受更多的文本行的。
  • CanContain 判断是否能够包含 NodeType 指定类型的节点。 比如列表节点(块级容器)只能包含列表项节点,块引用节点(块级容器)可以包含任意节点;段落节点(叶子块节点)不能包含任何其他块级节点。
  • ClearIALAttrs 用于删除 name、alias、memo 和 bookmark 以及所有 custom- 前缀属性。
  • TokensStr 返回 n 的 Tokens 字符串。
  • LastDeepestChild 返回 n 的最后一个最深子节点。
  • FirstDeepestChild 返回 n 的第一个最深的子节点。
  • ChildByType 在 n 的子节点中查找 childType 指定类型的第一个子节点。
  • ChildrenByType 返回 n 下所有类型为 childType 的子节点。
  • Text 返回 n 及其文本子节点的文本值。
  • TextLen 返回 n 及其文本子节点的累计长度。
  • Content 返回 n 及其所有内容子节点的文本值,块级节点间通过换行符分隔。
  • EscapeMarkerContent 返回 n 及其所有内容子节点的文本值(其中的标记符会被转义),块级节点间通过换行符分隔。
  • TokenLen 返回 n 及其子节点 tokens 累计长度。
  • DocChild 返回 n 的父节点,该该父节点是 doc 的直接子节点。
  • IsChildBlockOf 用于检查块级节点 n 的父节点是否是 parent 节点,depth 指定层级,0 为任意层级。n 如果不是块级节点,则直接返回 false。
  • Unlink 用于将节点从树上移除,后一个兄弟节点会接替该节点。
  • AppendTokens 添加 Tokens 到结尾。
  • PrependTokens 添加 Tokens 到开头。
  • InsertAfter 在当前节点后插入一个兄弟节点。
  • InsertBefore 在当前节点前插入一个兄弟节点。
  • AppendChild 在 n 的子节点最后再添加一个子节点。
  • PrependChild 在 n 的子节点最前添加一个子节点。
  • List 将 n 及其所有子节点按深度优先遍历添加到结果列表 ret 中。
  • ParentIs 判断 n 的类型是否在指定的 nodeTypes 类型列表内。
  • IsBlock 判断 n 是否为块级节点。
  • IsContainerBlock 判断 n 是否为容器块
  • IsMarker 判断 n 是否为节点标记符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年城市分站系统源码采用php语言

系统源码介绍&#xff1a; 本系统采用了php语言&#xff0c;根据现有了城市分布&#xff0c;包含了省市区&#xff0c;划分&#xff0c;具备了高级少选功能&#xff0c;按照每个市级城市为分站点&#xff0c;和主站点同样的模式。 安装方法&#xff1a; 快速创建几百个城市分…

如何使用配置文件参数 - 实现预训练模型训练

如何使用配置文件参数 - 实现预训练模型训练 引言为什么使用配置文件来预训练模型呢 配置文件结构举例实现通过配置文件训练模型如何微调配置文件训练出优秀的模型呢数据集特征模型架构先前研究和经验超参数调优迭代实验和评估 引言 预训练模型在各个领域的应用取得了显著的成…

实现简单的自定义曲线图

实现的效果 废话不多说看源码 package com.unite.module_index_pad.utils;import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.LinearGradient; import androi…

浅谈“信创”时代,恒辉软件发展前景

随着中国的发展&#xff0c;很多技术因为一些原因越来越受制于人&#xff0c;尤其是上游核心技术。为了解决这个问题&#xff0c;中国明确了“数字中国”建设战略&#xff0c;抢占数字经济产业链制高点。 自主创新与国产化已成为我国实现科技强国、经济强国的发展趋势与行业共…

MySQL之MHA高可用配置及故障切换实例

目录 一、MHA概述1.1 什么是MHA&#xff1f;1.2 MHA的组成<font colorblue>MHA Node &#xff08;数据节点&#xff09;<font colorblue>MHA Manager &#xff08;管理节点&#xff09;1.3 MHA 的特点 二、 MHA搭建准备2.1 实验思路2.2 实验准备 三、 MHA搭建的步骤…

rust安装

文章目录 1.官网下载2.安装3.安装验证4.打开本地文档5.安装插件6.HelloWorld①新建项目目录使用VSCode打开②新建rs文件③编译④运行 7.HelloCargo①新建项目目录使用VSCode打开②cargo build③cargo run④cargo check⑤为发布构建 8.更新与卸载 1.官网下载 官网地址&#xff…

企业数字化转型的意义及影响,你了解多少?

一、什么叫数字化转型 数字化转型是指利用数字技术和互联网的力量&#xff0c;对传统的商业模式、组织结构和流程进行全面的改造和升级&#xff0c;以适应快速变化的数字时代。它是企业和组织在面对数字化冲击和竞争压力时&#xff0c;主动采取的一种战略性调整。 数字化转型…

超级实用的思维导图软件

如果你正在寻找一款超级实用的思维导图软件&#xff0c;那么我强烈推荐你使用ProcessOn。这款软件不仅功能强大&#xff0c;而且易于使用&#xff0c;可以帮助你更好地组织和管理工作流程、学习笔记、项目管理等。 首先&#xff0c;让我们来看看ProcessOn的优点。它提供了丰富的…

@Valid @NotEmpty 数据为空返回message回前端

当添加注解NotEmpty的字段为空时&#xff0c;返回一大段异常数据。 如果想要把NotEmpty中的message返回给前端&#xff0c; 添加代码&#xff1a; ControllerAdvice public class GlobalExceptionHandler {ResponseBodyExceptionHandler(value MethodArgumentNotValidExcep…

中文词频统计及绘制词云图2

import jieba import pandas as pd import numpy as np import PIL.Image as Image from wordcloud import WordCloud#读取stopwords.txt with open(stopwords.txt,r,encoding utf-8) as f:st f.readlines()stopwords [i.strip() for i in st]with open(中国共产主义青年团第…

PMP®证书增持 CSPM-2证书,3分钟提交申请

2023年6月起&#xff0c;持有PMP证书的朋友可以直接增持一个同等级证书CSPM-2&#xff0c;不用重新考试&#xff0c;不用重新学习&#xff0c;原PMP证书不影响正常使用&#xff0c;相当于多了一个国标项目管理领域的证书。 第一步准备资料 1、填写能力评价表 2、提供2张2寸蓝底…

spark应用----统计分析电商网站的用户行为数据

目录 项目说明 题目一&#xff1a;Top5热门品类 题目二&#xff1a;Top5热门品类中每个品类的Top5活跃Session统计 scala实现 新建maven项目结构如下 配置pom.xml文件 scala代码 python实现 项目说明 本项目的数据是采集电商网站的用户行为数据&#xff0c;主要包含用户的4…

自制GPD Win2底壳

直接看效果吧&#xff0c;壳子做了一个月&#xff0c;算是从0开始吧&#xff0c; 打样就打了好几套&#xff0c;最后还差点小细节没做好&#xff0c;整体效果还算满意。

资深老鸟整理,性能测试平均负载详情,一篇足够...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 uptime 命令 每次…

6.用python写网络爬虫,表单交互

在前面几章中&#xff0c;我们下载的静态网页总是返回相同的内容。而在本章中&#xff0c;我们将与网页进行交互 根据用户输入返回对应的内容。本章将包含如下几个主题&#xff1a; 发送 POST 请求提交表单&#xff1a; 使用 cookie 登录网站&#xff1a; 用于简化表单提交的高…

EasyExcel概述

首先导入依赖 <dependencies><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><…

element 表格复选框设置禁用

禁用之后的效果&#xff0c;移入显示不可选中 <el-table :data"tableData" :row-class-name"tableRowClassName" border height"500" style"width: 100%" selection-change"handleSelectionChange"><el-table-colu…

项目风险管理6大黄金法则

在软件项目管理过程中&#xff0c;风险无处不在。风险的不确定性&#xff0c;往往导致项目延期、费用增加对项目保质保量交付造成极大影响。 如何更好地进行风险管理&#xff0c;以积极的态度处理项目风险&#xff0c;最大程度减轻风险对项目的威胁&#xff0c;就显得尤为重要。…

2023年,推荐这5款主流低代码开发平台

近几年&#xff0c;在技术领域低代码是比较热门的话题&#xff0c;低代码是基于可视化和模型驱动理念&#xff0c;结合云原生与多端体验技术&#xff0c;它能够在多数业务场景下实现大幅度的提效降本&#xff0c;为专业开发者提供了一种全新的高生产力开发范式。 低代码平台对…

uCOSiii的默认任务

uCOS有uCOSii和uCOSiii,这两个都是一个可裁剪、可剥夺型的多任务内核。 uCOSiii没有任务数限制&#xff0c;uCOSiii内部任务有5个&#xff1a; 中断服务服务管理任务&#xff0c;时钟节拍任务&#xff0c;定时器任务 &#xff0c;统计任务&#xff0c;空闲任务。 1、优先级…