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

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

  • Towxml概述
  • [安装下载 Towxml](#安装下载 Towxml)
  • [在小程序中使用 towxml](#在小程序中使用 towxml)

Towxml概述

towxml3.0 支持以下功能:

● echarts图表,默认禁用,需自行构建以开启此功能

● LaTeX数学公式,默认禁用,需搭建解析服务并自行构建以开启此功能

● yuml图表,默认禁用,需要搭建解析服务并自行构建以开启此功能

● highlight代码高亮,默认开启(默认仅开启bash、javascript、json、python、html、css、php、scss、shell),其它语言高亮支持需自行构建以开启

安装下载 Towxml

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

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

在小程序中使用 towxml

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

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

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

下面是官方给出的例子:

javascript 复制代码
//获取应用实例
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)函数

javascript 复制代码
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)}}

  1. 页面显示效果
相关推荐
郭wes代码9 小时前
Cmd命令大全(万字详细版)
python·算法·小程序
.生产的驴14 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
汤姆yu20 小时前
基于微信小程序的乡村旅游系统
微信小程序·旅游·乡村旅游
计算机徐师兄20 小时前
基于TP5框架的家具购物小程序的设计与实现【附源码、文档】
小程序·php·家具购物小程序·家具购物微信小程序·家具购物
曲辒净20 小时前
微信小程序实现二维码海报保存分享功能
微信小程序·小程序
朽木成才1 天前
小程序快速实现大模型聊天机器人
小程序·机器人
peachSoda71 天前
随手记:小程序使用uni.createVideoContext视频无法触发播放
小程序
何极光1 天前
uniapp小程序样式穿透
前端·小程序·uni-app
小墨&晓末1 天前
【PythonGui实战】自动摇号小程序
python·算法·小程序·系统安全
oil欧哟1 天前
🤔认真投入一个月做的小程序,能做成什么样子?有人用吗?
前端·vue.js·微信小程序