0.0.2 • Published 4 years ago

parserhtml2wxml v0.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

Parser

小程序富文本插件,详见 文档

star forks last-commit license

功能简介

  • 支持匹配 style 中的样式
  • 支持 svg
  • 支持锚点跳转
  • 支持设置占位图
  • 支持长按复制内容
  • 支持给多媒体标签设置多个源
  • 支持自动给链接填充主域名
  • 支持几乎所有的 html 标签
  • 支持丰富的事件和效果
  • 轻量化、效率高、容错性强
  • 支持多平台(微信、QQ、百度、支付宝、头条、uni-app 等)
    ...

更多功能可见:功能介绍

使用方法

插件包说明

名称大小使用
parser40.1KB微信小程序插件包
parser.min25.3KB微信小程序插件包压缩版(功能相同)
parser.qq39.6KBQQ 小程序插件包
parser.bd38.1KB百度小程序插件包
parser.my38.4KB支付宝小程序插件包
parser.tt38.9KB头条小程序插件包
parser.uni58.0KBuni-app 插件包(可以编译到所有平台)

在原生框架中使用

  1. 复制 parser 文件夹至 components 目录
  2. 在需要使用页面的 json 文件中添加

    {
      "usingComponents": {
        "parser":"/components/parser/parser"
      }
    }
  3. 在需要使用页面的 wxml 文件中添加

    <parser html="{{html}}" />
  4. 在需要使用页面的 js 文件中添加

    data: {
      html:"<div>Hello World!</div>"
    }
  • demo/wx 文件夹下的是微信小程序 富文本插件 示例程序的源码,可供参考

在 uni-app 中使用

  1. 复制 parser.uni 包到 components 目录下(更名为 jyf-parser
  2. 在需要使用页面的 vue 文件中添加

    <template>
      <view>
        <jyf-parser :html="html"></jyf-parser>
      </view>
    </template>
    <script>
    import parser from "@/components/jyf-parser/jyf-parser"; // HBuilderX 2.5.5 及以上可以不需要引入
    export default {
      // HBuilderX 2.5.5 及以上可以不需要引入
      components: {
        "jyf-parser": parser
      },
      data() {
        return {
          html: '<div>Hello World!</div>'
        }
      }
    }
    </script>
  • 可以直接通过 插件市场 引入
  • demo/uni-app 文件夹下是一个示例程序,可供参考

其他框架中使用可见:在其他框架中使用

组件属性

属性类型默认值说明
htmlString要显示的 html 字符串
autopauseBooleantrue是否允许播放视频时自动暂停其他视频
autoscrollBooleanfalse是否自动给 table 加一个滚动层(使表格可以单独滚动)
autosetTitleBooleantrue是否自动将 title 标签的内容设置到页面标题
compressNumber0压缩等级,可以选择是否移除 id 和 class
domainString主域名,设置后将给链接自动拼接主域名或协议名
lazy-loadBooleanfalse是否开启图片懒加载
loading-imgString图片加载完成前的占位图,详见 占位图
selectableBooleanfalse是否允许长按复制内容
show-with-animationBooleanfalse是否使用渐显动画
tag-styleObject设置标签的默认样式
use-anchorBooleanfalse是否使用页面内锚点
use-cacheBooleanfalse是否使用缓存,设置后多次打开不用重复解析

详细可见:组件属性

事件

名称功能说明
bindparse解析完成时触发返回解析结果,可以对该结果进行自定义修改,将在渲染时生效
bindloaddom 加载完成时触发所有节点被添加到节点树中时触发,无返回值,可以调用 api
bindready渲染完成时触发返回 boundingClientRect 的查询结果(包含宽高、位置等信息),所有图片(除懒加载)加载完成时才会触发,图片较大时可能 延时较长
binderror出错时触发返回一个 object,其中 source 是错误来源,errMsg 为错误信息,target 包含出错标签的具体信息
bindimgtap图片被点击时触发返回一个 object,其中 src 是图片链接,ignore 是一个函数,在回调函数中调用将不进行预览
bindlinkpress链接被点击时触发返回一个 object,其中 href 是链接地址,ignore 是一个函数,在回调中调用将不自动跳转/复制

详细可见:事件

使用外部样式

如果需要使用一些固定的样式,可以通过 wxss / css 文件引入
parser/trees/trees.wxss(css) 中通过 @import 引入自定义的样式文件即可

/*
* parser/trees/trees.wxss(css)
* 在这里引入您的自定义样式
*/
@import "external.wxss(css)";

更多信息可见:使用方法

扩展包

patches 文件夹中准备了一些扩展包,可根据需要选用,可以实现更加丰富的功能
具体信息见:扩展包

案例体验

富文本插件程序员技术之旅极客时代APP 比比全品作业小助手多么生活
恋爱宝典 xcx古典文学名著阅读典典博客咚咚阅读源创智造

以上排名不分先后,更多可见:链接(欢迎添加)

相关项目:
EastWorld/wechat-app-mall
zhangdaren/miniprogram-to-uniapp

许可与支持

  • 许可
    您可以随意的使用和分享本插件 MIT License
    不可用于任何违法用途
    在用于生产环境前务必经过充分测试,由插件 bug 带来的损失概不负责(可以自行修改源码)

  • 支持
    支持

更新日志

  • 2020.6.30

    1. F 修复了个别情况下图片样式异常的问题 详细
    2. F 修复了个别情况下会出现多余的换行的问题
  • 2020.6.15

    1. U 文档添加 性能优化建议体验优化建议
    2. D html 属性不再支持 Array 类型(传入 Array 的优化程度有限(解析时间基本 <50ms);但相同的内容,解析为 Array 后会增加大小,进而导致网络传输时间增加;因此大部分情况下传入 Array 起到的优化效果不大,甚至可能负优化,还增加了处理复杂度)
  • 2020.6.11

    1. A 增加支付宝小程序原生包 详细
    2. U uni-app 包适配华为快应用
    3. U uni-app 包编译到 App 时实现了 lazy-load 属性(图片懒加载)
    4. F 修复了 ios 端图片长按可能导致页面失去响应的问题 详细
    5. F 修复了 uni-app 包多次设置 html 内容时可能出现一些不正确情况的问题
    6. D 移除了 trustAttrs 的配置项,改为自动移除 data- 开头的属性

更多可见:更新日志