C端小程序
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

963 linhas
33 KiB

  1. <!--**
  2. * author: Di (微信小程序开发工程师)
  3. * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
  4. * 垂直微信小程序开发交流社区
  5. *
  6. * github地址: https://github.com/icindy/wxParse
  7. *
  8. * for: 微信小程序富文本解析
  9. * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
  10. */-->
  11. <!--基础元素-->
  12. <template name="wxParseVideo">
  13. <!--增加video标签支持,并循环添加-->
  14. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  15. <video class="{{item.classStr}} wxParse-{{item.tag}}-video" src="{{item.attr.src}}"></video>
  16. </view>
  17. </template>
  18. <template name="wxParseImg">
  19. <image class="{{item.classStr}} wxParse-{{item.tag}}" data-from="{{item.from}}" data-src="{{item.attr.src}}" data-idx="{{item.imgIndex}}" src="{{item.attr.src}}" bindload="wxParseImgLoad" bindtap="wxParseImgTap" mode="widthFix" style="width:{{item.width}}px;"
  20. />
  21. </template>
  22. <template name="WxEmojiView">
  23. <view class="WxEmojiView wxParse-inline" style="{{item.styleStr}}">
  24. <block wx:for="{{item.textArray}}" wx:key="">
  25. <block class="{{item.text == '\\n' ? 'wxParse-hide':''}}" wx:if="{{item.node == 'text'}}">{{item.text}}</block>
  26. <block wx:elif="{{item.node == 'element'}}">
  27. <image class="wxEmoji" src="{{item.baseSrc}}{{item.text}}" />
  28. </block>
  29. </block>
  30. </view>
  31. </template>
  32. <template name="WxParseBr">
  33. <text>\n</text>
  34. </template>
  35. <!--入口模版-->
  36. <template name="wxParse">
  37. <block wx:for="{{wxParseData}}" wx:key="">
  38. <template is="wxParse0" wx:if="{{item.tag !='style'}}" data="{{item}}" />
  39. </block>
  40. </template>
  41. <!--循环模版-->
  42. <template name="wxParse0">
  43. <!--<template is="wxParse1" data="{{item}}" />-->
  44. <!--判断是否是标签节点-->
  45. <block wx:if="{{item.node == 'element'}}">
  46. <block wx:if="{{item.tag == 'button'}}">
  47. <button type="default" size="mini">
  48. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  49. <template is="wxParse1" data="{{item}}" />
  50. </block>
  51. </button>
  52. </block>
  53. <!--li类型-->
  54. <block wx:elif="{{item.tag == 'li'}}">
  55. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  56. <view class="{{item.classStr}} wxParse-li-inner">
  57. <view class="{{item.classStr}} wxParse-li-text">
  58. <view class="{{item.classStr}} wxParse-li-circle"></view>
  59. </view>
  60. <view class="{{item.classStr}} wxParse-li-text">
  61. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  62. <template is="wxParse1" data="{{item}}" />
  63. </block>
  64. </view>
  65. </view>
  66. </view>
  67. </block>
  68. <!--video类型-->
  69. <block wx:elif="{{item.tag == 'video'}}">
  70. <template is="wxParseVideo" data="{{item}}" />
  71. </block>
  72. <!--img类型-->
  73. <block wx:elif="{{item.tag == 'img'}}">
  74. <template is="wxParseImg" data="{{item}}" />
  75. </block>
  76. <!--a类型-->
  77. <block wx:elif="{{item.tag == 'a'}}">
  78. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  79. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  80. <template is="wxParse1" data="{{item}}" />
  81. </block>
  82. </view>
  83. </block>
  84. <block wx:elif="{{item.tag == 'table'}}">
  85. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  86. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  87. <template is="wxParse1" data="{{item}}" />
  88. </block>
  89. </view>
  90. </block>
  91. <block wx:elif="{{item.tag == 'br'}}">
  92. <template is="WxParseBr"></template>
  93. </block>
  94. <!--其他块级标签-->
  95. <block wx:elif="{{item.tagType == 'block'}}">
  96. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  97. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  98. <template is="wxParse1" data="{{item}}" />
  99. </block>
  100. </view>
  101. </block>
  102. <!--内联标签-->
  103. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  104. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  105. <template is="wxParse1" data="{{item}}" />
  106. </block>
  107. </view>
  108. </block>
  109. <!--判断是否是文本节点-->
  110. <block wx:elif="{{item.node == 'text'}}">
  111. <!--如果是,直接进行-->
  112. <template is="WxEmojiView" data="{{item}}" />
  113. </block>
  114. </template>
  115. <!--循环模版-->
  116. <template name="wxParse1">
  117. <!--判断是否是标签节点-->
  118. <block wx:if="{{item.node == 'element'&&item.tag !='style'}}">
  119. <block wx:if="{{item.tag == 'button'}}">
  120. <button type="default" size="mini">
  121. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  122. <template is="wxParse2" data="{{item}}" />
  123. </block>
  124. </button>
  125. </block>
  126. <!--li类型-->
  127. <block wx:elif="{{item.tag == 'li'}}">
  128. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  129. <view class="{{item.classStr}} wxParse-li-inner">
  130. <view class="{{item.classStr}} wxParse-li-text">
  131. <view class="{{item.classStr}} wxParse-li-circle"></view>
  132. </view>
  133. <view class="{{item.classStr}} wxParse-li-text">
  134. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  135. <template is="wxParse2" data="{{item}}" />
  136. </block>
  137. </view>
  138. </view>
  139. </view>
  140. </block>
  141. <!--video类型-->
  142. <block wx:elif="{{item.tag == 'video'}}">
  143. <template is="wxParseVideo" data="{{item}}" />
  144. </block>
  145. <!--img类型-->
  146. <block wx:elif="{{item.tag == 'img'}}">
  147. <template is="wxParseImg" data="{{item}}" />
  148. </block>
  149. <!--a类型-->
  150. <block wx:elif="{{item.tag == 'a'}}">
  151. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  152. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  153. <template is="wxParse2" data="{{item}}" />
  154. </block>
  155. </view>
  156. </block>
  157. <block wx:elif="{{item.tag == 'br'}}">
  158. <template is="WxParseBr"></template>
  159. </block>
  160. <!--其他块级标签-->
  161. <block wx:elif="{{item.tagType == 'block'}}">
  162. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  163. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  164. <template is="wxParse2" data="{{item}}" />
  165. </block>
  166. </view>
  167. </block>
  168. <!--内联标签-->
  169. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  170. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  171. <template is="wxParse2" data="{{item}}" />
  172. </block>
  173. </view>
  174. </block>
  175. <!--判断是否是文本节点-->
  176. <block wx:elif="{{item.node == 'text'}}">
  177. <!--如果是,直接进行-->
  178. <template is="WxEmojiView" data="{{item}}" />
  179. </block>
  180. </template>
  181. <!--循环模版-->
  182. <template name="wxParse2">
  183. <!--<template is="wxParse3" data="{{item}}" />-->
  184. <!--判断是否是标签节点-->
  185. <block wx:if="{{item.node == 'element'}}">
  186. <block wx:if="{{item.tag == 'button'}}">
  187. <button type="default" size="mini">
  188. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  189. <template is="wxParse3" data="{{item}}" />
  190. </block>
  191. </button>
  192. </block>
  193. <!--li类型-->
  194. <block wx:elif="{{item.tag == 'li'}}">
  195. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  196. <view class="{{item.classStr}} wxParse-li-inner">
  197. <view class="{{item.classStr}} wxParse-li-text">
  198. <view class="{{item.classStr}} wxParse-li-circle"></view>
  199. </view>
  200. <view class="{{item.classStr}} wxParse-li-text">
  201. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  202. <template is="wxParse3" data="{{item}}" />
  203. </block>
  204. </view>
  205. </view>
  206. </view>
  207. </block>
  208. <!--video类型-->
  209. <block wx:elif="{{item.tag == 'video'}}">
  210. <template is="wxParseVideo" data="{{item}}" />
  211. </block>
  212. <!--img类型-->
  213. <block wx:elif="{{item.tag == 'img'}}">
  214. <template is="wxParseImg" data="{{item}}" />
  215. </block>
  216. <!--a类型-->
  217. <block wx:elif="{{item.tag == 'a'}}">
  218. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  219. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  220. <template is="wxParse3" data="{{item}}" />
  221. </block>
  222. </view>
  223. </block>
  224. <block wx:elif="{{item.tag == 'br'}}">
  225. <template is="WxParseBr"></template>
  226. </block>
  227. <!--其他块级标签-->
  228. <block wx:elif="{{item.tagType == 'block'}}">
  229. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  230. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  231. <template is="wxParse3" data="{{item}}" />
  232. </block>
  233. </view>
  234. </block>
  235. <!--内联标签-->
  236. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  237. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  238. <template is="wxParse3" data="{{item}}" />
  239. </block>
  240. </view>
  241. </block>
  242. <!--判断是否是文本节点-->
  243. <block wx:elif="{{item.node == 'text'&&item.tag !='style'}}">
  244. <!--如果是,直接进行-->
  245. <template is="WxEmojiView" data="{{item}}" />
  246. </block>
  247. </template>
  248. <!--循环模版-->
  249. <template name="wxParse3">
  250. <!--<template is="wxParse4" data="{{item}}" />-->
  251. <!--判断是否是标签节点-->
  252. <block wx:if="{{item.node == 'element'}}">
  253. <block wx:if="{{item.tag == 'button'}}">
  254. <button type="default" size="mini">
  255. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  256. <template is="wxParse4" data="{{item}}" />
  257. </block>
  258. </button>
  259. </block>
  260. <!--li类型-->
  261. <block wx:elif="{{item.tag == 'li'}}">
  262. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  263. <view class="{{item.classStr}} wxParse-li-inner">
  264. <view class="{{item.classStr}} wxParse-li-text">
  265. <view class="{{item.classStr}} wxParse-li-circle"></view>
  266. </view>
  267. <view class="{{item.classStr}} wxParse-li-text">
  268. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  269. <template is="wxParse4" data="{{item}}" />
  270. </block>
  271. </view>
  272. </view>
  273. </view>
  274. </block>
  275. <!--video类型-->
  276. <block wx:elif="{{item.tag == 'video'}}">
  277. <template is="wxParseVideo" data="{{item}}" />
  278. </block>
  279. <!--img类型-->
  280. <block wx:elif="{{item.tag == 'img'}}">
  281. <template is="wxParseImg" data="{{item}}" />
  282. </block>
  283. <!--a类型-->
  284. <block wx:elif="{{item.tag == 'a'}}">
  285. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  286. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  287. <template is="wxParse4" data="{{item}}" />
  288. </block>
  289. </view>
  290. </block>
  291. <block wx:elif="{{item.tag == 'br'}}">
  292. <template is="WxParseBr"></template>
  293. </block>
  294. <!--其他块级标签-->
  295. <block wx:elif="{{item.tagType == 'block'}}">
  296. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  297. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  298. <template is="wxParse4" data="{{item}}" />
  299. </block>
  300. </view>
  301. </block>
  302. <!--内联标签-->
  303. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  304. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  305. <template is="wxParse4" data="{{item}}" />
  306. </block>
  307. </view>
  308. </block>
  309. <!--判断是否是文本节点-->
  310. <block wx:elif="{{item.node == 'text'}}">
  311. <!--如果是,直接进行-->
  312. <template is="WxEmojiView" data="{{item}}" />
  313. </block>
  314. </template>
  315. <!--循环模版-->
  316. <template name="wxParse4">
  317. <!--<template is="wxParse5" data="{{item}}" />-->
  318. <!--判断是否是标签节点-->
  319. <block wx:if="{{item.node == 'element'}}">
  320. <block wx:if="{{item.tag == 'button'}}">
  321. <button type="default" size="mini">
  322. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  323. <template is="wxParse5" data="{{item}}" />
  324. </block>
  325. </button>
  326. </block>
  327. <!--li类型-->
  328. <block wx:elif="{{item.tag == 'li'}}">
  329. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  330. <view class="{{item.classStr}} wxParse-li-inner">
  331. <view class="{{item.classStr}} wxParse-li-text">
  332. <view class="{{item.classStr}} wxParse-li-circle"></view>
  333. </view>
  334. <view class="{{item.classStr}} wxParse-li-text">
  335. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  336. <template is="wxParse5" data="{{item}}" />
  337. </block>
  338. </view>
  339. </view>
  340. </view>
  341. </block>
  342. <!--video类型-->
  343. <block wx:elif="{{item.tag == 'video'}}">
  344. <template is="wxParseVideo" data="{{item}}" />
  345. </block>
  346. <!--img类型-->
  347. <block wx:elif="{{item.tag == 'img'}}">
  348. <template is="wxParseImg" data="{{item}}" />
  349. </block>
  350. <!--a类型-->
  351. <block wx:elif="{{item.tag == 'a'}}">
  352. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  353. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  354. <template is="wxParse5" data="{{item}}" />
  355. </block>
  356. </view>
  357. </block>
  358. <block wx:elif="{{item.tag == 'br'}}">
  359. <template is="WxParseBr"></template>
  360. </block>
  361. <!--其他块级标签-->
  362. <block wx:elif="{{item.tagType == 'block'}}">
  363. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  364. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  365. <template is="wxParse5" data="{{item}}" />
  366. </block>
  367. </view>
  368. </block>
  369. <!--内联标签-->
  370. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  371. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  372. <template is="wxParse5" data="{{item}}" />
  373. </block>
  374. </view>
  375. </block>
  376. <!--判断是否是文本节点-->
  377. <block wx:elif="{{item.node == 'text'}}">
  378. <!--如果是,直接进行-->
  379. <template is="WxEmojiView" data="{{item}}" />
  380. </block>
  381. </template>
  382. <!--循环模版-->
  383. <template name="wxParse5">
  384. <!--<template is="wxParse6" data="{{item}}" />-->
  385. <!--判断是否是标签节点-->
  386. <block wx:if="{{item.node == 'element'}}">
  387. <block wx:if="{{item.tag == 'button'}}">
  388. <button type="default" size="mini">
  389. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  390. <template is="wxParse6" data="{{item}}" />
  391. </block>
  392. </button>
  393. </block>
  394. <!--li类型-->
  395. <block wx:elif="{{item.tag == 'li'}}">
  396. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  397. <view class="{{item.classStr}} wxParse-li-inner">
  398. <view class="{{item.classStr}} wxParse-li-text">
  399. <view class="{{item.classStr}} wxParse-li-circle"></view>
  400. </view>
  401. <view class="{{item.classStr}} wxParse-li-text">
  402. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  403. <template is="wxParse6" data="{{item}}" />
  404. </block>
  405. </view>
  406. </view>
  407. </view>
  408. </block>
  409. <!--video类型-->
  410. <block wx:elif="{{item.tag == 'video'}}">
  411. <template is="wxParseVideo" data="{{item}}" />
  412. </block>
  413. <!--img类型-->
  414. <block wx:elif="{{item.tag == 'img'}}">
  415. <template is="wxParseImg" data="{{item}}" />
  416. </block>
  417. <!--a类型-->
  418. <block wx:elif="{{item.tag == 'a'}}">
  419. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  420. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  421. <template is="wxParse6" data="{{item}}" />
  422. </block>
  423. </view>
  424. </block>
  425. <block wx:elif="{{item.tag == 'br'}}">
  426. <template is="WxParseBr"></template>
  427. </block>
  428. <!--其他块级标签-->
  429. <block wx:elif="{{item.tagType == 'block'}}">
  430. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  431. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  432. <template is="wxParse6" data="{{item}}" />
  433. </block>
  434. </view>
  435. </block>
  436. <!--内联标签-->
  437. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  438. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  439. <template is="wxParse6" data="{{item}}" />
  440. </block>
  441. </view>
  442. </block>
  443. <!--判断是否是文本节点-->
  444. <block wx:elif="{{item.node == 'text'}}">
  445. <!--如果是,直接进行-->
  446. <template is="WxEmojiView" data="{{item}}" />
  447. </block>
  448. </template>
  449. <!--循环模版-->
  450. <template name="wxParse6">
  451. <!--<template is="wxParse7" data="{{item}}" />-->
  452. <!--判断是否是标签节点-->
  453. <block wx:if="{{item.node == 'element'}}">
  454. <block wx:if="{{item.tag == 'button'}}">
  455. <button type="default" size="mini">
  456. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  457. <template is="wxParse7" data="{{item}}" />
  458. </block>
  459. </button>
  460. </block>
  461. <!--li类型-->
  462. <block wx:elif="{{item.tag == 'li'}}">
  463. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  464. <view class="{{item.classStr}} wxParse-li-inner">
  465. <view class="{{item.classStr}} wxParse-li-text">
  466. <view class="{{item.classStr}} wxParse-li-circle"></view>
  467. </view>
  468. <view class="{{item.classStr}} wxParse-li-text">
  469. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  470. <template is="wxParse7" data="{{item}}" />
  471. </block>
  472. </view>
  473. </view>
  474. </view>
  475. </block>
  476. <!--video类型-->
  477. <block wx:elif="{{item.tag == 'video'}}">
  478. <template is="wxParseVideo" data="{{item}}" />
  479. </block>
  480. <!--img类型-->
  481. <block wx:elif="{{item.tag == 'img'}}">
  482. <template is="wxParseImg" data="{{item}}" />
  483. </block>
  484. <!--a类型-->
  485. <block wx:elif="{{item.tag == 'a'}}">
  486. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  487. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  488. <template is="wxParse7" data="{{item}}" />
  489. </block>
  490. </view>
  491. </block>
  492. <block wx:elif="{{item.tag == 'br'}}">
  493. <template is="WxParseBr"></template>
  494. </block>
  495. <!--其他块级标签-->
  496. <block wx:elif="{{item.tagType == 'block'}}">
  497. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  498. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  499. <template is="wxParse7" data="{{item}}" />
  500. </block>
  501. </view>
  502. </block>
  503. <!--内联标签-->
  504. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  505. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  506. <template is="wxParse7" data="{{item}}" />
  507. </block>
  508. </view>
  509. </block>
  510. <!--判断是否是文本节点-->
  511. <block wx:elif="{{item.node == 'text'}}">
  512. <!--如果是,直接进行-->
  513. <template is="WxEmojiView" data="{{item}}" />
  514. </block>
  515. </template>
  516. <!--循环模版-->
  517. <template name="wxParse7">
  518. <!--<template is="wxParse8" data="{{item}}" />-->
  519. <!--判断是否是标签节点-->
  520. <block wx:if="{{item.node == 'element'}}">
  521. <block wx:if="{{item.tag == 'button'}}">
  522. <button type="default" size="mini">
  523. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  524. <template is="wxParse8" data="{{item}}" />
  525. </block>
  526. </button>
  527. </block>
  528. <!--li类型-->
  529. <block wx:elif="{{item.tag == 'li'}}">
  530. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  531. <view class="{{item.classStr}} wxParse-li-inner">
  532. <view class="{{item.classStr}} wxParse-li-text">
  533. <view class="{{item.classStr}} wxParse-li-circle"></view>
  534. </view>
  535. <view class="{{item.classStr}} wxParse-li-text">
  536. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  537. <template is="wxParse8" data="{{item}}" />
  538. </block>
  539. </view>
  540. </view>
  541. </view>
  542. </block>
  543. <!--video类型-->
  544. <block wx:elif="{{item.tag == 'video'}}">
  545. <template is="wxParseVideo" data="{{item}}" />
  546. </block>
  547. <!--img类型-->
  548. <block wx:elif="{{item.tag == 'img'}}">
  549. <template is="wxParseImg" data="{{item}}" />
  550. </block>
  551. <!--a类型-->
  552. <block wx:elif="{{item.tag == 'a'}}">
  553. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  554. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  555. <template is="wxParse8" data="{{item}}" />
  556. </block>
  557. </view>
  558. </block>
  559. <block wx:elif="{{item.tag == 'br'}}">
  560. <template is="WxParseBr"></template>
  561. </block>
  562. <!--其他块级标签-->
  563. <block wx:elif="{{item.tagType == 'block'}}">
  564. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  565. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  566. <template is="wxParse8" data="{{item}}" />
  567. </block>
  568. </view>
  569. </block>
  570. <!--内联标签-->
  571. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  572. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  573. <template is="wxParse8" data="{{item}}" />
  574. </block>
  575. </view>
  576. </block>
  577. <!--判断是否是文本节点-->
  578. <block wx:elif="{{item.node == 'text'}}">
  579. <!--如果是,直接进行-->
  580. <template is="WxEmojiView" data="{{item}}" />
  581. </block>
  582. </template>
  583. <!--循环模版-->
  584. <template name="wxParse8">
  585. <!--<template is="wxParse9" data="{{item}}" />-->
  586. <!--判断是否是标签节点-->
  587. <block wx:if="{{item.node == 'element'}}">
  588. <block wx:if="{{item.tag == 'button'}}">
  589. <button type="default" size="mini">
  590. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  591. <template is="wxParse9" data="{{item}}" />
  592. </block>
  593. </button>
  594. </block>
  595. <!--li类型-->
  596. <block wx:elif="{{item.tag == 'li'}}">
  597. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  598. <view class="{{item.classStr}} wxParse-li-inner">
  599. <view class="{{item.classStr}} wxParse-li-text">
  600. <view class="{{item.classStr}} wxParse-li-circle"></view>
  601. </view>
  602. <view class="{{item.classStr}} wxParse-li-text">
  603. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  604. <template is="wxParse9" data="{{item}}" />
  605. </block>
  606. </view>
  607. </view>
  608. </view>
  609. </block>
  610. <!--video类型-->
  611. <block wx:elif="{{item.tag == 'video'}}">
  612. <template is="wxParseVideo" data="{{item}}" />
  613. </block>
  614. <!--img类型-->
  615. <block wx:elif="{{item.tag == 'img'}}">
  616. <template is="wxParseImg" data="{{item}}" />
  617. </block>
  618. <!--a类型-->
  619. <block wx:elif="{{item.tag == 'a'}}">
  620. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  621. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  622. <template is="wxParse9" data="{{item}}" />
  623. </block>
  624. </view>
  625. </block>
  626. <block wx:elif="{{item.tag == 'br'}}">
  627. <template is="WxParseBr"></template>
  628. </block>
  629. <!--其他块级标签-->
  630. <block wx:elif="{{item.tagType == 'block'}}">
  631. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  632. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  633. <template is="wxParse9" data="{{item}}" />
  634. </block>
  635. </view>
  636. </block>
  637. <!--内联标签-->
  638. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  639. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  640. <template is="wxParse9" data="{{item}}" />
  641. </block>
  642. </view>
  643. </block>
  644. <!--判断是否是文本节点-->
  645. <block wx:elif="{{item.node == 'text'}}">
  646. <!--如果是,直接进行-->
  647. <template is="WxEmojiView" data="{{item}}" />
  648. </block>
  649. </template>
  650. <!--循环模版-->
  651. <template name="wxParse9">
  652. <!--<template is="wxParse10" data="{{item}}" />-->
  653. <!--判断是否是标签节点-->
  654. <block wx:if="{{item.node == 'element'}}">
  655. <block wx:if="{{item.tag == 'button'}}">
  656. <button type="default" size="mini">
  657. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  658. <template is="wxParse10" data="{{item}}" />
  659. </block>
  660. </button>
  661. </block>
  662. <!--li类型-->
  663. <block wx:elif="{{item.tag == 'li'}}">
  664. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  665. <view class="{{item.classStr}} wxParse-li-inner">
  666. <view class="{{item.classStr}} wxParse-li-text">
  667. <view class="{{item.classStr}} wxParse-li-circle"></view>
  668. </view>
  669. <view class="{{item.classStr}} wxParse-li-text">
  670. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  671. <template is="wxParse10" data="{{item}}" />
  672. </block>
  673. </view>
  674. </view>
  675. </view>
  676. </block>
  677. <!--video类型-->
  678. <block wx:elif="{{item.tag == 'video'}}">
  679. <template is="wxParseVideo" data="{{item}}" />
  680. </block>
  681. <!--img类型-->
  682. <block wx:elif="{{item.tag == 'img'}}">
  683. <template is="wxParseImg" data="{{item}}" />
  684. </block>
  685. <!--a类型-->
  686. <block wx:elif="{{item.tag == 'a'}}">
  687. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  688. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  689. <template is="wxParse10" data="{{item}}" />
  690. </block>
  691. </view>
  692. </block>
  693. <block wx:elif="{{item.tag == 'br'}}">
  694. <template is="WxParseBr"></template>
  695. </block>
  696. <!--其他块级标签-->
  697. <block wx:elif="{{item.tagType == 'block'}}">
  698. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  699. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  700. <template is="wxParse10" data="{{item}}" />
  701. </block>
  702. </view>
  703. </block>
  704. <!--内联标签-->
  705. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  706. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  707. <template is="wxParse10" data="{{item}}" />
  708. </block>
  709. </view>
  710. </block>
  711. <!--判断是否是文本节点-->
  712. <block wx:elif="{{item.node == 'text'}}">
  713. <!--如果是,直接进行-->
  714. <template is="WxEmojiView" data="{{item}}" />
  715. </block>
  716. </template>
  717. <!--循环模版-->
  718. <template name="wxParse10">
  719. <!--<template is="wxParse11" data="{{item}}" />-->
  720. <!--判断是否是标签节点-->
  721. <block wx:if="{{item.node == 'element'}}">
  722. <block wx:if="{{item.tag == 'button'}}">
  723. <button type="default" size="mini">
  724. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  725. <template is="wxParse11" data="{{item}}" />
  726. </block>
  727. </button>
  728. </block>
  729. <!--li类型-->
  730. <block wx:elif="{{item.tag == 'li'}}">
  731. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  732. <view class="{{item.classStr}} wxParse-li-inner">
  733. <view class="{{item.classStr}} wxParse-li-text">
  734. <view class="{{item.classStr}} wxParse-li-circle"></view>
  735. </view>
  736. <view class="{{item.classStr}} wxParse-li-text">
  737. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  738. <template is="wxParse11" data="{{item}}" />
  739. </block>
  740. </view>
  741. </view>
  742. </view>
  743. </block>
  744. <!--video类型-->
  745. <block wx:elif="{{item.tag == 'video'}}">
  746. <template is="wxParseVideo" data="{{item}}" />
  747. </block>
  748. <!--img类型-->
  749. <block wx:elif="{{item.tag == 'img'}}">
  750. <template is="wxParseImg" data="{{item}}" />
  751. </block>
  752. <!--a类型-->
  753. <block wx:elif="{{item.tag == 'a'}}">
  754. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  755. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  756. <template is="wxParse11" data="{{item}}" />
  757. </block>
  758. </view>
  759. </block>
  760. <block wx:elif="{{item.tag == 'br'}}">
  761. <template is="WxParseBr"></template>
  762. </block>
  763. <!--其他块级标签-->
  764. <block wx:elif="{{item.tagType == 'block'}}">
  765. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  766. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  767. <template is="wxParse11" data="{{item}}" />
  768. </block>
  769. </view>
  770. </block>
  771. <!--内联标签-->
  772. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  773. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  774. <template is="wxParse11" data="{{item}}" />
  775. </block>
  776. </view>
  777. </block>
  778. <!--判断是否是文本节点-->
  779. <block wx:elif="{{item.node == 'text'}}">
  780. <!--如果是,直接进行-->
  781. <template is="WxEmojiView" data="{{item}}" />
  782. </block>
  783. </template>
  784. <!--循环模版-->
  785. <template name="wxParse11">
  786. <!--<template is="wxParse12" data="{{item}}" />-->
  787. <!--判断是否是标签节点-->
  788. <block wx:if="{{item.node == 'element'}}">
  789. <block wx:if="{{item.tag == 'button'}}">
  790. <button type="default" size="mini">
  791. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  792. <template is="wxParse12" data="{{item}}" />
  793. </block>
  794. </button>
  795. </block>
  796. <!--li类型-->
  797. <block wx:elif="{{item.tag == 'li'}}">
  798. <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}">
  799. <view class="{{item.classStr}} wxParse-li-inner">
  800. <view class="{{item.classStr}} wxParse-li-text">
  801. <view class="{{item.classStr}} wxParse-li-circle"></view>
  802. </view>
  803. <view class="{{item.classStr}} wxParse-li-text">
  804. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  805. <template is="wxParse12" data="{{item}}" />
  806. </block>
  807. </view>
  808. </view>
  809. </view>
  810. </block>
  811. <!--video类型-->
  812. <block wx:elif="{{item.tag == 'video'}}">
  813. <template is="wxParseVideo" data="{{item}}" />
  814. </block>
  815. <!--img类型-->
  816. <block wx:elif="{{item.tag == 'img'}}">
  817. <template is="wxParseImg" data="{{item}}" />
  818. </block>
  819. <!--a类型-->
  820. <block wx:elif="{{item.tag == 'a'}}">
  821. <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}">
  822. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  823. <template is="wxParse12" data="{{item}}" />
  824. </block>
  825. </view>
  826. </block>
  827. <block wx:elif="{{item.tag == 'br'}}">
  828. <template is="WxParseBr"></template>
  829. </block>
  830. <!--其他块级标签-->
  831. <block wx:elif="{{item.tagType == 'block'}}">
  832. <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}">
  833. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  834. <template is="wxParse12" data="{{item}}" />
  835. </block>
  836. </view>
  837. </block>
  838. <!--内联标签-->
  839. <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}">
  840. <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key="">
  841. <template is="wxParse12" data="{{item}}" />
  842. </block>
  843. </view>
  844. </block>
  845. <!--判断是否是文本节点-->
  846. <block wx:elif="{{item.node == 'text'}}">
  847. <!--如果是,直接进行-->
  848. <template is="WxEmojiView" data="{{item}}" />
  849. </block>
  850. </template>