- 支持LaTex数学公式
- 支持yuml流程图
- 支持代码语法高亮、代码块行号显示
- 支持emoji表情😉
- 支持上标、下标、下划线、删除线、表格、视频、图片
- 支持typographer字符替换
- 支持多主题切换
- 支持Markdown TodoList
- 支持解析完成回调
- 目前只支持h5和微信小程序,别的小程序平台现在样式问题暂未解决(小程序没太深入研究过,各位大佬如果有方案,欢迎指导)
npm install taro-parse
yarn add taro-parse
import '~taro-parse/dist/style/main.scss'
import TaroParser from 'taro-parse'
参数名 | 类型 | 描述 |
---|---|---|
type | String | markdown | html |
theme | String | 主题 'light' | 'dark' |
content | String | 要解析的内容 |
onImgClick | Function | 图片点击回调 |
onLoaded | Function | 文档解析完成回调(在渲染前) |
onLinkClick | Function | 链接点击回调 |
yumlApi | String | 否 |
latexApi | String | 否 |
import Taro, {Component, Config} from '@tarojs/taro'
import {View} from '@tarojs/components'
import './index.scss'
import '~taro-parse/dist/style/main.scss'
import TaroParser from 'taro-parse'
export default class Index extends Component {
config: Config = {
navigationBarTitleText: '首页'
}
options = {
addGlobalClass: true
}
imgClick = (src, imgList) => {
Taro.previewImage({urls: imgList, current: src}).then(() => {
})
}
linkClick = (href) => {
Taro.setClipboardData({data: href}).then(() => {
Taro.showToast({title: '链接已复制'}).then(() => {
})
})
}
render() {
Taro.showLoading({title: '加载中...'}).then(() => {
})
const content = markdown
return (
<View className='index'>
<TaroParser
type='markdown'
theme='light'
onImgClick={this.imgClick}
onLinkClick={this.linkClick}
onLoaded={() => {
Taro.hideLoading()
}}
yumlApi='https://md.werfei.com/?yuml'
latexApi='https://md.werfei.com/?tex'
content={content}
/>
</View>
)
}
}
流程图和数学公式云解析参考@markdown-server
该项目是基于 @towxml 做的taro版本