微信小程序将本地md文件转js以方便集成在小程序代码中,其中md使用towxml渲染
说明:因为微信小程序编写代码不支持读取本地md文件,但几个md文件使用在线读取也太浪费资源了。
因此尝试通过转为js文件绕开限制
本文章使用towxml开源库渲染MD文件:https://github.com/sbfkcel/towxml
方法:把markdown文件以字符串读取出来,经过python文件处理,转为一个可以在微信小程序代码中可以读取的js文件
也可以使用其他语言编写,只有转换为正确的
js
文件就可以
import json
'''
把 # 标题1
## 标题2 转为
md
'''
with open('README.md', 'r', encoding='utf-8') as f:
s = f.read()
md_dict = {"md": s}
# json字典转json字符串
md_dict_str = json.dumps(md_dict)
b = "var localData = "
c = '''
module.exports = {
postData: localData
}
'''
d = b+md_dict_str+c
with open('test.js', 'w', encoding='utf-8') as f1:
f1.write(d)
js文件使用示例
js文件示例
// # 喝了 ## 吗
//中文显示的是16进制码字
var localData = {"md": "# \u559d\u4e86\n## \u5417"}
module.exports = {
postData: localData
}
在微信小程序页面js导入test.js
var pastData = require('../../utils/data.js')
使用
// 渲染,index.js
const app = getApp();
var pastData = require('../../utils/data.js')
Page({
data: {
isLoading: true,
article: {}
},
onLoad: function () {
// console.log(pastData.postData.md)
// 离线使用
let obj = app.towxml(pastData.postData.md,'markdown',{
events:{
tap:e => {
console.log('tap',e);
},
change:e => {
console.log('todo',e);
}
}
});
this.setData({
article:obj,
isLoading: false
});
}
})
一般是不推荐使用本地Markdown
文件,因为微信对本地文档不支持了(推荐网络传输),使用起来太麻烦。