项目作者: imingyu

项目描述 :
将微信小程序的wxml代码转换成js object或html片段
高级语言: JavaScript
项目地址: git://github.com/imingyu/wxml-transformer.git
创建时间: 2017-06-28T02:23:35Z
项目社区:https://github.com/imingyu/wxml-transformer

开源协议:BSD 3-Clause "New" or "Revised" License

关键词:
transformer wxapp wxml wxml-to-html wxml-transformer

下载


wxml-transformer

将微信小程序的wxml代码转换成js object或html片段

注意:此工具单独使用无任何意义,因为默认配置中,wxml标签的相关属性名和值都会原封不动的传递给转换后的html标签,所以转换后的html不拥有功能,只拥有结构;不过此工具可以供其他解决方案使用,如:存在一种将小程序应用直接转换成vue/react/angular单页应用的解决方案。

Build Status
image
image
image

安装

  1. npm i wxml-transformer --save-dev

使用

  1. var transformer = require('wxml-transformer');
  2. transformer.toHtml('<view id="box">{{123}}</view>');
  3. //<div id="box">{{123}}</div>
  4. var options = {
  5. mapping: {
  6. view: 'section',
  7. text: (element, helper) => {
  8. return `<span data-wxa="text" ${helper.propsStringify(element.props)}>` +
  9. `${helper.childrenStringify(element.children, options)}</span>`;
  10. }
  11. }
  12. };
  13. transformer.toHtml('<view id="box">{{123}} <text id="t1">456</text></view>', options);
  14. //<section id="box">{{123}} <span data-wxa="text" id="t1">456</span></section>
  15. transformer.toObject('<view id="box">{{123}}</view>');
  16. //{tag:'view', props:[{name:'id', value:'box'}], children:[ {'{{123}}'} ]}
  17. transformer.toObject('<view id="box" hidden>{{123}}</view>');
  18. //{tag:'view', props:[{name:'id', value:'box'}, {name:'hidden', onlyName:true}], children:[ {'{{123}}'} ]}

更新日志

v0.1.3

v0.1.2

  • toObject方法转换后的结果中props不在是一个object,而是一个Array,结构为:[{name:String, value:String, onlyName:Boolean}];
  • toObject支持将无属性值的属性添加特殊标记,以供后续程序使用,特殊标记为onlyName,是个Boolean值;

v0.1.0 ~ v0.1.1

初步功能,包括:

  • wxml转换成object;
  • wxml转换成html;
  • object转换成html;