微信小程序支持Markdown教程

Towxml 介绍

Towxml 官网 https://github.com/sbfkcel/towxml

Towxml 是一个可将HTML、Markdown转为微信小程序WXML(WeiXin Markup Language)的渲染库。用于解决在微信小程序中Markdown、HTML不能直接渲染的问题。

特色

Towxml 3.0 完整支持以下功能。当然在构建时可仅保留需要功能以减少体积大小和代码依赖。

支持echarts图表(3.0+)✨
支持LaTex数学公式(3.0+)✨
支持yuml流程图(3.0+)✨
支持按需构建(3.0+)✨
支持代码语法高亮、代码块行号显示
支持emoji表情😉
支持上标、下标、下划线、删除线、表格、视频、图片(几乎绝大部分html元素)……
支持typographer字符替换
支持多主题切换
支持Markdown TodoList
支持事件绑定(这样允许自行扩展功能哟,例如:点击页面中的某个元素,更新当前页面内容等…)
极致的中文排版优化
支持前后解析数据

使用教程

1、克隆项目到本地

git clone https://github.com/sbfkcel/towxml.git
复制代码

将红框的文件夹复制到你的根目录,并改名称为towxml
在这里插入图片描述

在这里插入图片描述
改名称为towxml
在这里插入图片描述

2、引入库到 /app.js

// app.js
App({
  // 引入`towxml3.0`解析方法
  towxml:require('/towxml/index'),
})

3、在具体页面的配置文件中引入twoxml组件

{
  "usingComponents": {
    "towxml":"/towxml/towxml"
  }
}

4、在页面中插入组件

<view class="content-info">
  <towxml nodes="{{article}}"/>
</view>

5、在js中解析内容

在js中封装一个数据请求,也可以直接写在App.js

App({
  // 引入`towxml3.0`解析方法
  towxml:require('/towxml/index'),
    //声明一个数据请求方法
  getText: (url, callback) => {
    wx.request({
      url: url,
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: (res) => {
        if (typeof callback === 'function') {
          callback(res);
        };
      }
    });
  }
  })

然后在具体页面的js文件中处理解析内容
方式一:通过数据请求的方式

const app = getApp();
Page({/**
   * 页面的初始数据
   */
  data: {
   article:{}
  },/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    app.getText('https://www.vvadd.com/wxml_demo/demo.txt?v=2',res => {
      let obj = app.towxml(res.data,'markdown',{
        theme:'light', //主题 dark 黑色,light白色,不填默认是light
        base:"www.xxx.com",
        events:{      //为元素绑定的事件方法
          tap:e => {
            console.log('tap',e);
          },
          change:e => {
            console.log('todo',e);
          }
        }
      });
      //更新解析数据
      this.setData({
        article:obj,
      });
    });
  },
})

方式二:不使用数据请求

// pages/content-detail/content-detail.js
const app = getApp();
Page({/**
   * 页面的初始数据
   */
  data: {
   article:{}
  },/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //markdown数据源
      let content= "<h1>h1h1h1h1h1h1</h1><h2>h2h2h2h2</h2><h3>123456</h3>"
    let result = app.towxml(content,'markdown',{
       base:'www.xxx.com',             // 相对资源的base路径
       theme:'light',                   // 主题,默认`light`
      events:{                    // 为元素绑定的事件方法
           tap:(e)=>{
               console.log('h4',e);
           }
       }
   });
   // 更新解析数据
   this.setData({
      article:result
   });
  },
})

这里我是请求一个网址https://www.vvadd.com/wxml_demo/demo.txt?v=2
网址内容是一些MarkDown文本

在这里插入图片描述

6、显示效果

在这里插入图片描述

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韭菜盖饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值