分享组件:微信小程序可用的Markdown渲染库

  • • 发表于 8年前
  • • 作者 tenngo
  • • 5216 人浏览
  • • 0 条评论
  • • 最后编辑时间 8年前
  • • 来自 [技 术]

项目截图:

下载地址:http://www.xcxwo.com/component/view/80cb64bfaa7f5d3498f2715892188c34

背景和功能

用于在小程序中渲染Markdown文本。

众所周知,Markdown的渲染一般需要解析成HTML来渲染。然而小程序并没有提供HTML渲染的功能,甚至连利用JS动态创建UI元素都不可能。因此所有的Markdown渲染库全部无法在小程序下正常工作。

本库可以实现在小程序下渲染Markdown内容,支持图片、表格在内的大部分Markdown特性。

使用方式

1. 准备工作:

  1. 下载并拷贝wemark目录到小程序根目录
  2. WXSS中引用样式:@import '../wemark/wemark.wxss'
  3. WXML中引用结构:<import src="../wemark/wemark.wxml"/>
  4. JS中引用wemarkvar wemark = require('wemark')

2. JS部分

首先需要确定一个用于wemark渲染使用的数据名称(默认情况下为wemark),然后在页面的data中指定:

page({
    data:{
        // 确定一个数据名称
        wemark:{}
    }
});

接下来在Page的生命周期函数(如onReady)中,调用wemark.parse(md, this, options)即可。

具体的参数说明:

  • md,必填,需要渲染的Markdown字符串
  • this,必填,Page实例
  • options,其它的参数
    • imageWidth,图片的宽度,如包含图片,则为必填,以px为单位
    • name,对应上面指定的数据名称,默认为wemark

3. WXML部分

// data中的参数和上方确定的数据名称保持一致
<template is="wemark" data="{{...wemark}}"></template>

实例

// 引入wemark
var wemark = require('../wemark/wemark');
// 需要渲染的Markdown文本
var md = '# hello, world

I love you, wemark!';


Page({
    data: {
        // 确定一个数据名称
        wemark:{}
    },
    onReady: function(){
        wemark.parse(md, this, {
            imageWidth: wx.getSystemInfoSync().windowWidth - 40,
            name: 'wemark'
        })
    }
});

特性

  • 标题
  • 段落
  • 代码段
  • 引用
  • 无序列表
  • 有序列表
  • 粗体
  • 强调(斜体)
  • 行内代码
  • 图片
  • 表格

测试

npm install
npm test

转载文章 阅读原文

分享到:
0条评论
Ctrl+Enter
作者

tenngo

tenngo

APP:0 帖子:12 回复:10 积分:192

已加入社区[3030]天

主人太懒,签名没设置!

作者详情》
Top