微信小程序使用云存储和Markdown开发页面

这篇具有很好参考价值的文章主要介绍了微信小程序使用云存储和Markdown开发页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近想在一个小程序里加入一个使用指南的页面,考虑到数据存储和减少页面的开发工作量,决定尝试在云存储里上传Markdown文件,微信小程序端负责解析和渲染。小程序端使用到一个库Towxml。

Towxml

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

特色

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

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

使用方法

1. 将构建出来的towxml并解压至小程序项目根目录下,即(小程序/towxml

2. 引入库/app.js

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

3. 在页面配置文件中引入towxml组件 /pages/index/index.json

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

4. 在页面中插入组件/pages/index/index.wxml

<!--index.wxml-->
<view class="container">
  <towxml nodes="{{article}}"/>
</view>

5. 解析内容并使用/pages/index/index.js

//获取应用实例
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
		});
		
	}
})

云开发

我们需要将写好的Markdown文件拖入云存储,并且在同一级目录添加一个images文件夹。把Markdown中用到的图片拖入其中。然后在需要渲染的页面先下载Markdown文件:

wx.cloud.downloadFile({
      fileID: 'cloud://demo-dev-lnhec.6675-demo-dev-lnhec-1302677061/ads/markdown.md'
    }).then(res => {
      console.log(res.tempFilePath)
      let fs = wx.getFileSystemManager()
      let result = fs.readFileSync(res.tempFilePath,"utf-8")
      this.renderMarkdown(result)
    })

然后在renderMarkdown需要给towxml指定图片文件夹所在的父目录作为base地址,base地址是所有静态相对资源的base路径,这个地址不仅适用于http地址,也适用于云存储地址。

renderMarkdown(markdown){
    let result = app.towxml(markdown,'markdown',{
			base:'cloud://demo-dev-lnhec.6675-demo-dev-lnhec-1302677061/ads',				// 相对资源的base路径
			theme:'light',					// 主题,默认`light`
			events:{					// 为元素绑定的事件方法
				tap:(e)=>{
					console.log('tap',e);
				}
			}
    })
    // 更新解析数据
		this.setData({
			article:result,
			isLoading: false
		});
  },

最后我们来看看渲染结果:

微信小程序使用云存储和Markdown开发页面,微信小程序,小程序,Markdown渲染,云开发,Towxml

微信小程序使用云存储和Markdown开发页面,微信小程序,小程序,Markdown渲染,云开发,Towxml

可以看到Markdown里的图片链接成功渲染出来了。

总结

本文介绍通过将Towxml与云存储结合,在微信小程序中渲染Markdown文件,快速开发容易维护的QA、教程页面。文章来源地址https://www.toymoban.com/news/detail-693910.html

到了这里,关于微信小程序使用云存储和Markdown开发页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序基础使用-请求数据并渲染

    小程序模板语法-数据绑定 在js中定义数据 小程序的data是一个对象,不同于vue的data是一个函数 在模块中获取使用数据 小程序中使用 {{}} 实现数据与模板的绑定 内容绑定: view{{ 属性名 }}/view 属性绑定: input value=\\\"{{属性名}}\\\" / {{}} 内写的是表达式 简易双向绑定 小程序中提供了

    2024年02月08日
    浏览(90)
  • 微信小程序新版渲染引擎Skyline的使用详解

    今年年初,在官方文档上看到小程序团队要推出一款性能逼近原生的渲染引擎Skyline,就一直在关注。刚好最近打算做一款新的阅读小程序,作为一名独立开发者,对于性能和用户体验的追求是永无止境的,于是我决定用纯Skyline打造这款小程序。 当然,这个项目里面所用到的

    2024年02月07日
    浏览(46)
  • 基于uniapp开发 微信小程序登陆页面一

     此微信登陆页面是参考uniapp开发文档 uniapp一键登录和button组件中的@getphonenumber方法 代码展示  成品展示      

    2024年02月12日
    浏览(52)
  • 【微信小程序独立开发 3】个人资料页面编写

     这一节完成用户个人信息昵称的填写和获取 上节编写完成后的页面如下所示: 首先进行用户昵称编辑功能的编写,铲屎官昵称采用了navigator标签,当点击昵称时会自动跳转到昵称编辑页面。 首先输入昵称编辑界面的导航栏名称 基本页面编写 当在个人信息页面点击昵称时,

    2024年03月09日
    浏览(94)
  • 【微信小程序-原生开发】实用教程02-添加全局页面配置、页面、底部导航

    开始前,请先完成项目创建,详见 【微信小程序-原生开发】实用教程01-注册登录账号,获取 AppID、下载安装开发工具、创建项目、上传体验 因我们的项目是根据模板创建的,需先清理掉无效的页面代码,具体操作方式如下: 删除 pages 文件夹下的所有文件 用下方代码替换掉

    2023年04月10日
    浏览(45)
  • 微信小程序开发系列(三)·微信小程序页面的创建、小程序如何更改调试基础库

    零基础手把手教你创建微信小程序(一)·微信小程序开发账号的注册以及开发者工具的安装和使用-CSDN博客 零基础手把手教你创建微信小程序(二)·创建第一个微信小程序以及了解小程序代码的构成-CSDN博客 目录 1.  小程序页面的创建 1.1  方法一 1.2  方法二 2.  小程序如

    2024年04月26日
    浏览(57)
  • 微信小程序云开发之云存储(实现图片上传和下载)

    我们经常将文件(音频、图片、压缩包、文档)存储在网上,我们的云开发平台为开发者提供“云存储”空间,开发者只需将文件上传,就可以得到这个文件的下载地址和File ID。 代码如下(示例): 效果: wxml示例: js代码示例: 代码如下(示例): tips:上边的链接下载地

    2024年02月11日
    浏览(97)
  • 微信小程序隐私协议自定义页面(弹窗)开发流程以及低版本兼容

    这里我选择的是全局监听,进入小程序就会监控用户有没有同意,没有则进行弹窗,不同意则关闭,这个逻辑可以根据自己需要随便修改。 发现有很多人根据自己调试基础库来排查自己涉不涉及,你的小程序是否涉及隐私协议整改,还是看有没有调用涉及隐私接口,如果有,

    2024年01月16日
    浏览(61)
  • 微信小程序详细讲解页面传值,globalData,wx,web前端开发基础

    在其他非app.js文件中修改: var app = getApp() ​ app.globalData.hasLogin = true 二、 使用 wx.navigateTo 与 wx.redirectTo 的时候,可以将部分数据放在 url 里面,并在新页面 onLoad 的时候初始化 // Navigate wx.navigateTo({ url: ‘…/pageD/pageD?name=raymondgender=male’, }) ​ // Redirect wx.redirectTo({ url: ‘…/p

    2024年04月25日
    浏览(60)
  • 微信小程序不使用插件,渲染富文本中的视频,图片自适应,plus版本

    小程序原生的 rich-text 不支持渲染视频,所以需要处理后显示,主要用了字符串切割以及匹配 当我们从后端拿到富文本数据时,我们利用replace方法去修改图片的样式,保证图片与手机宽度保持一致 如果富文本出现莫名的空白区域,可能是富文本中包含有换行标签,我们就将

    2024年02月02日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包