0.0.3 • Published 4 years ago

parser-h v0.0.3

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

Parser

小程序富文本插件,详见 文档
功能使用调查问卷:填写

star forks last-commit license

功能简介

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

更多功能可见:功能介绍

使用方法

插件包说明

名称大小使用
parser44.3KB微信小程序插件包
parser.min30.1KB微信小程序插件包压缩版(功能相同)
parser.qq43.8KBQQ 小程序插件包
parser.tt43.1KB头条小程序插件包
parser.uni60.7KBuni-app 插件包(可以编译到所有平台)

百度版从 20191215 起不再维护,可从过去版本中获取(Parser.bd

在原生框架中使用

  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/Array要显示的富文本数据,格式同 rich-text
autopauseBooleantrue是否允许播放视频时自动暂停其他视频
autosetTitleBooleantrue是否自动将 title 标签的内容设置到页面标题
compressNumber0压缩等级,可以选择是否移除 id 和 class
domainString主域名,设置后将给链接自动拼接主域名或协议名
lazy-loadBooleanfalse是否开启图片懒加载
selectableBooleanfalse是否允许长按复制内容
show-with-animationBooleanfalse是否使用渐显动画
tag-styleObject设置标签的默认样式
use-anchorBooleanfalse是否使用页面内锚点
use-cacheBooleanfalse是否使用缓存,设置后多次打开不用重复解析
xmlBooleanfalse是否使用 xml 方式解析

详细可见:组件属性

事件

名称功能说明
bindparse解析完成时触发返回解析结果(一个 nodes 数组,仅传入的 html 类型为 String 时会触发),可以对该结果进行自定义修改,将在渲染时生效
bindloaddom 加载完成时触发所有节点被添加到节点树中时触发,无返回值,可以调用 api
bindready渲染完成时触发返回 boundingClientRect 的查询结果(包含宽高、位置等信息),所有图片(除懒加载)加载完成时才会触发,图片较大时可能 延时较长
binderror出错时触发返回一个 object,其中 source 是错误来源,errMsg 为错误信息,errCode 是错误代码(仅ad),target 包含出错标签的具体信息,context 是视频的 context 对象
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 文件夹中准备了一些扩展包,可根据需要选用,可以实现更加丰富的功能
具体信息见:扩展包

案例体验

富文本插件多么生活SteamCN 蒸汽动力论坛典典博客
恋爱宝典xcx恋爱宝典(QQ)程序员技术之旅古典文学名著阅读

欢迎添加:链接

许可与支持

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

  • 支持
    支持

更新日志

  • 2020.4.25

    1. U 优化了图片的显示方式(可解决加载完毕时大小突变的问题,但不再支持云文件 IDwebp 图片)详细
    2. U 支持在链接中使用实体编码
    3. U 模拟实现的列表(内含图片链接)支持 list-style:none
    4. U navigateToapi 增加一个 offset 参数,可设置偏移量
    5. U uni-app 包支持使用 audio 扩展包
    6. F 修复了个别情况下图片宽度过宽的问题
    7. F 修复了 CssHandler 扩展包 class 匹配错误的问题 详细
    8. F 修复了 uni-app 包编译到 NVUE 时在 ready 前设置数据可能无法显示的问题
    9. F 修复了 uni-app 包编译到 App 时视频可能无法显示的问题
    10. F 修复了 uni-app 包编译到 H5tag-style 中的 rpx 失效的问题
  • 2020.4.19

    1. F 修复了 原生包 部分情况下 table 中在 td 外有文本节点会导致解析错误的问题
    2. F 修复了 uni-app 包无法使用 document 扩展包 的问题(并增加了一些方法) 详细
  • 2020.4.17

    1. F 修复了 uni-appNVUE 端打包到安卓后可能白屏的问题(另外由于不再通过本地文件中转,显示速度应该更快)
  • 2020.4.16

    1. U uni-app 包用通过 image(经过一些处理后)来显示图片(替代 rich-text),可以实现以下优化:
      1. 百度、支付宝(1.9.0)、头条小程序支持 lazy-load,微信和 App 也采用 image 自带的 lazy-load,可能性能更好
      2. img 出错时也会触发 error 事件,且可以通过 context 重设 src 详细
      3. 微信端还可以支持云文件 ID(2.3.0),长按弹出菜单(2.7.0),支持 webp 图片(2.9.0)
    2. F uni-app 包修复了 NVUE 中使用可能空白的问题
  • 2020.4.14

    1. A 增加 QQ 小程序原生包 详细
    2. U 头条小程序包优化实体编码处理
    3. U uni-appnvue 端实现了 navigateTopreLoadapi
  • 2020.4.13

    1. A 增加头条小程序原生包 详细
    2. U 针对头条小程序事件无法传递函数的问题,提供一种新的接收方式(global.Parser.onxxx详细
    3. F 修复了自动移除空 div 导致换行失效的问题 详细
    4. F 修复了使用多个并列 rpx 时可能失效的问题 详细
    5. F 修复了 uni-appgetText 方法出错的问题 详细
    6. F 修复了 audio 扩展包音乐名太长会导致样式错乱的问题
  • 2020.4.12
    一周年撒花 🎉🎉

    1. U uni-app 包支持 NVUE详细
    2. U uni-appApp 端支持直接通过 plus 打开外链
  • 2020.3.28

    1. F 修复了 uni-appApp(v3)iframe 标签无法使用的问题
  • 2020.3.26

    1. A 增加了 xml 属性,可以以 xml 方式解析 详细
    2. F 修复了使用自闭合 svg 标签会导致死循环的问题 详细
    3. F 修复了设置 domain 属性时 data:imagecloud:// 的链接会被错误填充的问题

更多可见:更新日志

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago

0.5.0

4 years ago