towxml的使用,在微信小程序中快速将markdown格式渲染为wxml文本

news/2024/10/22 3:24:57/

towxml的使用,在微信小程序中快速将markdown格式渲染为wxml文本

  • Towxml概述
  • 安装下载 Towxml
  • 在小程序中使用 towxml

Towxml概述

towxml3.0 支持以下功能:

● echarts图表,默认禁用,需自行构建以开启此功能
● LaTeX数学公式,默认禁用,需搭建解析服务并自行构建以开启此功能
● yuml图表,默认禁用,需要搭建解析服务并自行构建以开启此功能
● highlight代码高亮,默认开启(默认仅开启bash、javascript、json、python、html、css、php、scss、shell),其它语言高亮支持需自行构建以开启

安装下载 Towxml

  1. 先使用命令克隆到本地中(使用git进行安装)
git clone https://github.com/sbfkcel/towxml.git
  1. 对克隆的下的文件进行依赖安装和npm重构
npm install  # 安装依赖
npm run build # npm 重构

在这里插入图片描述

构建完成后,会在当前的目录中生成一个dist目录(按照提示找到对应的文件夹),然后将其拷贝到微信小程序项目中(根下),重命名为towxml即可。

在这里插入图片描述

在小程序中使用 towxml

  1. 引入towxml库到 App.js中
// app.js
App({towxml: require('./towxml/index'),onLaunch() {},
})
  1. 在具体页面的配置文件中引入towxml组件

注意:这里的组件路径根据自己的页面去找相对路径。

{"usingComponents": {"towxml": "../../towxml/towxml"}
}
  1. 在wxml页面中使用towxml组件
<view class="content-info"><towxml nodes="{{article}}"/>
</view>
  1. 在具体页面的js中对需要进行markdown转换wxml的业务进行处理解析

下面是官方给出的例子:

//获取应用实例
const app = getApp();
Page({data: {isLoading: true,					// 判断是否尚在加载中article: {}						// 内容数据},onLoad: function () {let result = app.towxml(`# Markdown`,'markdown',{base:'https://xxx.com',				// 相对资源的base路径theme:'dark',					// 主题,默认`light`events:{					// 为元素绑定的事件方法tap:(e)=>{console.log('tap',e);}}});// 更新解析数据this.setData({article:result,isLoading: false});}
})

其实就是调用app.towxml(str,type,options)函数

const app = getApp(); // 应用实例
Page({// ....onLoad:function(){// 这是一个伪代码let 解析的结果 = app.towxml('想要被解析的数据','markdown',[options])} 
})

其中的options选项都是可选的,可以一个都不加,选项说明如下:
app.towxml(str,type,options)有三个参数
str 必选,html或markdown字符串
type 必选需要解析的内容类型html或markdown
options [object] 可选,可以该选项设置主题、绑定事件、设置base等
base [string] 可选,用于指定静态相对资源的base路径。例如:https://xx.com/static/
theme [string] 可选,默认:light,用于指定主题’light’或’dark’,或其它自定义
events [object] 可选,用于为元素绑定事件。key为事件名称,value则必须为一个函数。例如:{tap:e=>{console.log(e)}}
5. 页面显示效果

在这里插入图片描述


http://www.ppmy.cn/news/1169176.html

相关文章

python在nacos注册微服务

安装 首先需要安装python的nacos sdk pip install nacos-sdk-python 注册 注册过程非常简单&#xff0c;需要注意的是&#xff0c;注册完要定时发送心跳&#xff0c;否则服务会被nacos删掉。 import nacos import timeSERVER_ADDRESSES "http://1.2.3.4:8848" …

插入排序(学习笔记)

插入排序 每一轮插入排序后的结果与打扑克牌取牌原理相似&#xff0c;将取到的牌插入到合适的位置&#xff0c;但在程序实现方面还是基于交换的算法。 它的基本思想是将一个记录插入到已经排好序的有序表中&#xff0c;从而一个新的、记录数增1的有序表。 import java.util.…

容器技术基础

1. Linux Namespace和Cgroups 对于 Docker 等大多数 Linux 容器来说&#xff0c;Cgroups 技术是用来制造约束的主要手段&#xff0c;而 Namespace 技术则是用来修改进程视图的主要方法。 1.1 PID Namespace //Linux 系统正常创建线程 int pid clone(main_function, stack_s…

负采样:如何高效训练词向量

Negative Sampling 1.何为负采样 负采样是一种用于训练词嵌入模型的采样方法&#xff0c;特别适用于处理大规模词汇表的情况。负采样的目标是降低计算成本并改善模型的性能&#xff0c;同时有效地训练词向量。 2.为什么需要负采样 在传统的词嵌入模型中&#xff0c;如Word…

PHP来判断地址信息中是否包含“香港“、“澳门“或“台湾“等

你可以使用PHP来判断地址信息中是否包含"香港"、"澳门"或"台湾"等词汇。以下是一个示例代码&#xff1a; $addressInfo "香港特别行政区中环坚道甲地上段8号";// 创建一个包含需要检查的词汇的数组 $keywords ["香港", &…

el-dialog弹窗拖动

import Vue from vue// v-dialogDrag: 弹窗拖拽属性 &#xff08;重点&#xff01;&#xff01;&#xff01; 给模态框添加这个属性模态框就能拖拽了&#xff09; Vue.directive(dialogDrag, {// 属性名称dialogDrag&#xff0c;前面加v- 使用bind(el, binding, vnode) {const …

最小生成树笔记

生成树&#xff1a;删去一些边&#xff0c;使图变成树。 对于 n n n 个点的图&#xff0c;生成树有 n − 1 n-1 n−1 条边。 最小生成树&#xff1a;所有生成树中边权最小的。 对于一个图&#xff0c;不存在最大/最小生成树的条件是并查集里面没有 n n n 个点&#xff0c;…

AM@连续函数相关概念和运算性质

文章目录 abstract相关概念最值&#x1f47a;无最值的情况零点 连续函数的性质连续函数的四则运算复合函数极限关系定理函数符号和极限号交换次序 复合函数的连续性&#x1f47a;基本初等函数的连续性推论 反函数的连续性&#x1f47a; abstract 连续函数相关概念和运算性质 …