微信小程序markdown转换为wxml(uniapp开发)

项目背景

后端Java、小程序开发uniapp

后台需要发布文章,在微信小程序端显示,但是后台文章保存格式为markdown格式,而且在文章中存在table数据,在微信小程序中是没有table的,这里的转编译就成了一个大问题,之前也使用过Towxml直接对markdown进行编译,发现在显示图片和table时仍然会出现问题,而且在uniapp中使用Towxml也不是太方便,这里我们采用后端将markdown先转换为html,再到小程序端将其转换为wxml来进行处理。

处理方式

后端:

后端这里我使用的是Java,用FlexMark框架将markdown转换为html,再发送给前端,Java处理markdown文章入下,这里不进行过多说明:

Java处理markdown为HTML

微信小程序端:

微信小程序端我使用的是mphtml框架进行的处理:

步骤一:

npm install mp-html

步骤二:

到需要的页面进行导入

import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'

步骤三:

导入组件,将html绑定

<mp-html :content="html" ></mp-html>
注意:

这里如果想对编译后的wxml进行样式修改,可以直接通过绑定标签来编辑css,如下代码实例:

html 复制代码
<template>
	<div class="wrap">
		<mp-html :content="html" :tag-style="tagStyle" ></mp-html>
	</div>
</template>
 
<script>
	import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
	export default {
		data() {
			return {
				html: `<div id="md-editor-v-0-preview" class="md-editor-preview default-theme md-editor-scrn"><h2 data-line="0" id="新增政策">新增政策</h2>
<figure data-line="1"><img src="http://localhost:8088/static/img/2025/02/%E9%B8%A1%E5%93%A51739467171418.png" alt="" class="md-zoom medium-zoom-image"></figure>
<ul data-line="2">
<li data-line="2">孩子们我是政策1</li>
<li data-line="3">孩子们我是政策2</li>
<li data-line="4">孩子们我是政策3</li>
</ul>
<table data-line="7">
<thead data-line="7">
<tr data-line="7">
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
<th>Column4</th>
</tr>
</thead>
<tbody data-line="9">
<tr data-line="9">
<td>1.1</td>
<td>1.2</td>
<td>1.3</td>
<td>1.4</td>
</tr>
<tr data-line="10">
<td>2.1</td>
<td>2.2</td>
<td>2.3</td>
<td>2.4</td>
</tr>
</tbody>
</table>
</div>`,
         tagStyle: {
            table: 'border-top: 1px solid gray; border-left: 1px solid gray; border-collapse:collapse;margin: auto;',
            th: 'border-right: 1px solid gray; border-bottom: 1px solid gray;background-color: #eeeeee;',
            td: 'border-right: 1px solid gray; border-bottom: 1px solid gray;',
						h2: 'text-align: center;'
         }
			};
		},
		mounted() {
			
		},
		components: {
			mpHtml
		}
	};
</script>

<style>
	/* a 标签默认效果 */
	._a {
	  padding: 1.5px 0 1.5px 0;
	  color: #366092;
	  word-break: break-all;
	}
	
	/* a 标签点击态效果 */
	._hover {
	  text-decoration: underline;
	  opacity: 0.7;
	}
	
	/* 图片默认效果 */
	._img {
	  max-width: 100%;
	  -webkit-touch-callout: none;
	}
</style>

输出效果:

更多的用法可以研究下官方文档:

mphtml中文文档

相关推荐
咸虾米4 小时前
在unicloud的云对象中如何调用同一服务空间内的另外其他云对象
javascript·微信小程序·前端框架
weixin_177297220694 小时前
盲盒小程序系统开发:助力品牌拓展新市场
小程序·盲盒
一 乐4 小时前
口腔健康系统|口腔医疗|基于java和小程序的口腔健康系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·小程序·毕设
Aress"4 小时前
uniapp 生成二维码图片[APP+H5+小程序等 全端适配]
小程序·uni-app
小小王app小程序开发4 小时前
旧衣回收小程序的技术架构与商业落地:开发者视角的全链路解析
小程序·架构
sen_shan6 小时前
《微信小程序》第七章:TabBar设计
微信小程序·小程序
程序0076 小时前
微信小程序app.js错误:require is not defined
javascript·微信小程序·小程序
云起SAAS6 小时前
斗兽棋象狮虎豹狼小游戏抖音快手微信小程序看广告流量主开源
微信小程序·小程序·ai编程·看广告变现轻·斗兽棋象狮虎豹狼小游戏
幽络源小助理6 小时前
微信小程序火锅店点餐系统SSM源码
微信小程序
说私域6 小时前
基于“开源AI智能名片链动2+1模式S2B2C商城小程序”的会员制培养策略研究
人工智能·小程序