npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

xiaomaer-richeditor

v1.0.2

Published

> xiaomaer-richeditor

Downloads

2

Readme

富文本编辑器组件

xiaomaer-richeditor

概述

基于umeditor的react富文本编辑器组件。

API

| 参数 | 说明 | 类型 | 默认值 | 是否必传 | | --- | --- | --- | --- | --- | | id | 唯一标示 | string | 'richeditor' | Yes | | value | 富文本编辑器的值,默认为空【注意:受控的方式使用该组件,由于设置value时,调用setContent方法会触发selectionchange事件,导致光标所在位置失效,插入图片、链接等内容位置不正确,拖拽异常等,故不推荐使用】| string | - | No | | defaultValue | 富文本编辑器默认值,仅初始化时使用一次,默认为空| string | - | No | | videoConfig | 视频相关配置 | object | - | No | | height | 编辑器高度(包括工具栏) | number | 400 | No | | minheight | 编辑器最小高度(包括工具栏) | number |120 | No | | zIndex | 编辑器z-index | number | 10001 | No | | editStatus | 是否可编辑 | boolean | true | No | | errorMsg | 报错信息 | string | '请填写正确信息' | No | | errorStatus | 是否报错 | boolean | false | No | | imageUrl | 本地上传时请求的上传地址 | string | 当前页面地址 | No | | pastedImageUrl | 自行粘贴图片上传的接口返回,组装成图片url,此参数优先于imagePath | Function | null | No | | imagePath | 使用组合方式组装返回的url,需要设置正确的路径,如果设置了getImageRtnUrl,此参数不起作用 | string | 当前页面地址 | No | | parameter | 本地上传时的参数,开头不加 & | string | - | No | | localUpload | 开启本地上传功能 | boolean | false | No | | fileType | 文件类型 | Array | - | No | | fileSize | 文件大小 | string | - | No | | fileSizeMessage | 文件大小错误提示 | string | - | No | | fileTypeMessage | 文件格式错误提示 | string | - | No | | toolbar | 自定义工具栏 | Array | - | No | | onChange | value是指当前富文本中的value,haveContent(boolean)指当前文本框中是否有内容 | function(value,haveContet){} | - | No | | onBlur | 当前富文本编辑器失去光标时触发(value是指当前富文本中的value,haveContent(boolean)指当前文本框中是否有内容) | function(value,haveContet){} | - | No | | onFocus | 当前富文本编辑器获得光标时触发 | function | - | No | | onUploadSuccess | 图片上传成功回调 | function | - | No | | onUploadFailure | 图片上传失败回调 | function | - | No | | autoHeightEnabled | 是否可以根据内容自动增高| boolean| true | No | | initialStyle | 默认样式,需要指定具体的选择器来设置 | string | -| No | | translation | 多语言支持 | object | { lang: 'zh-cn'} ('zh-cn'|'zh_CN'|'en'|'en_US'|'zh-tw'|zh_TW') | No | | pasteFormat | 自定义格式化方法 可以对复制的文本进行格式化处理 | (html) => {return html} | - | No | | draggable | 是否允许拖拽调整编辑器大小 | boolean | false | No | | retainOnlyLabelPasted | 粘贴只保留标签,去除标签所有属性 | boolean | false | No | | pasteplain | 是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴 | boolean | false | No | | filterTxtRules | 纯文本粘贴模式下的过滤规则 | object | 默认值见umeditor.config.js配置 | No | | placeholder | 配置编辑器提示文字 | string | '你想说点什么…' | No |

数据格式

videoConfig数据格式:

{
  "autoplay": true, //自动播放,默认false
  "controls": true,// 默认false
  "loop": true //循环播放,默认false
}

toolbar的默认值:

[
  'source | undo redo | bold italic underline strikethrough | forecolor | fullscreen |',
  'insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize',
  '| justifyleft justifycenter justifyright justifyjustify indent outdent |',
  'link unlink | image video music',
  '| horizontal preview inserttable ',
    ]

注意

  • 该组件插入视频仅支持mp4格式,win7下由于系统限制,最小支持48x48,最大支持1920x1088

richeditor参数

  id:"richeditor", //唯一标示,必须
  value:this.decode("<p><a href="https://www.baidu.com/" target="_blank" title="bd">bd</a><br/></p>"),  //富文本内显示的值,默认为空,demode()方法为解码方法
  videoConfig: { //视频相关配置
      autoplay: true, //自动播放,默认false
      controls: true,// 默认false
      loop: true //循环播放,默认false
  },
  height:240,//编辑器高度,默认240
  zIndex: 10001,//编辑器z-index,默认10001
  editStatus : true,  //是否可编辑,true为可编辑,false为不可编辑,只读状态(readonly)
  errorMsg: "出错了~~~!", //报错信息,默认为‘请填写正确信息’
  errorStatus: true, //是否报错
  imageUrl: "https://demo-cloud.italent.link/api/v2/Data/File/",  //本地上传时请求的上传地址,默认为当前页面地址
  parameter: "app=BeisenCloudDemo&metaObjName=BeisenCloudDemo.ceshi0602",  //本地上传时的参数,开头不加 &
  localUpload: true, //开启本地上传功能,默认false
  fileType: ['.jpeg','.jpg','.gif','.png','.bmp'],
  fileSize: '10M',
  fileSizeMessage: '上传图片不允许超过10M',
  fileTypeMessage: '上传图片格式错误,默认只支持jpeg,jpg,gif,png,bmp',
  toolbar:[
          'source | undo redo | bold italic underline strikethrough | forecolor | fullscreen |',
          'insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,
          '| justifyleft justifycenter justifyright justifyjustify indent outdent |',
          'link unlink | image video music',
          '| horizontal preview inserttable ',
      ], //自定义工具栏,默认为'source | undo redo | bold italic underline strikethrough | forecolor |','insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,'| justifyleft justifycenter justifyright justifyjustify indent outdent |','link unlink | image video music','| horizontal preview inserttable ',
  onChange : function(value,haveContet){} //函数参数value是指当前富文本中的value,haveContent(boolean)是指当前文本框中是否有内容
  onUploadSuccess:() => {},//图片上传成功回调
  onUploadFailure:() => {},//图片上传失败回调  
  translation: {
    lang: 'zh-cn'  // { zh-cn | en } 目前只支持这两种
  }
  pasteFormat: (html) => {return html} // 自定义格式化方法 可以对复制的文本进行格式化处理

richeditor调用方法

1.安装npm组件包

npm install xiaomaer-richeditor --save-dev

2.引用组件

import RichEditor from "xiaomaer-richeditor"

3.传入参数 该参数为上述参数,传入方式使用: {...props}

  class Demo extends Component{
  constructor(props) {
    super(props);
    this.state = {
      value: ""
    }
  }
  decode(str){
      return str
          .replace(/"/g, '"')
          .replace(/'/g, "'")
          .replace(/&lt;/g, '<')
          .replace(/&gt;/g, '>')
          .replace(/&amp;/g, '&');
  }
 encode(str) {
    return str
        .replace(/&/g, '&amp;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&#39;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;');
  }
  render () {
    //视频测试地址mp4: http://f.us.sinaimg.cn/001jqIlHlx07jXQjrcEU01040200WPGC0k010.mp4?label=mp4_ld&template=300x120.28&Expires=1526894899&ssig=ZZ4YhH%2Bl%2F8&KID=unistore,video
    //http://www.w3school.com.cn/i/movie.ogg
    //http://video.699pic.com/videos/69/64/54/qgE4wF14Rye61523696454.mp4
    let options ={
      value:"http://video.699pic.com/videos/69/64/54/qgE4wF14Rye61523696454.mp4",
       videoConfig: { //视频相关配置
        autoplay: false, //自动播放,默认false
        controls: true,// 默认false
        loop: true //循环播放,默认false
      },
      height: 240,//编辑器高度,默认240
      zIndex:10001,//编辑器z-index,默认10001
      editStatus : true,
      errorMsg: "出错了~~~!", //报错信息,默认为‘请填写正确信息’
      errorStatus: true, //是否报错
      imageUrl: "http://demo-cloud.italent.link/api/v2/Data/File",  //本地上传时的上传地址,默认为当前页面地址
      parameter: "app=BeisenCloudDemo&metaObjName=BeisenCloudDemo.123",  //本地上传时的参数,开头不加 &
      localUpload: true, //开启本地上传功能
      oolbar:[
        'source | undo redo | bold italic underline strikethrough | forecolor | fullscreen |',
        'insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,
        '| justifyleft justifycenter justifyright justifyjustify indent outdent |',
        'link unlink | image video music',
        '| horizontal preview inserttable ',
    ], //自定义工具栏,默认为'source | undo redo | bold italic underline strikethrough | forecolor |','insertorderedlist insertunorderedlist | cleardoc removeformat | fontfamily fontsize' ,'| justifyleft justifycenter justifyright justifyjustify indent outdent |','link unlink | image video music','| horizontal preview inserttable ',
    onChange : function(value,haveContet){
      console.log(value)
    },
    onUploadSuccess: () => {console.log('文件上传成功')},
    onUploadFailure: () => {console.log('文件上传失败')},
    pasteFormat: (html) => {return html.replace(/font-family: PingFangSC-Regular;/g,'');}
    }
    return (
      <div style={{"width":"1000px"}}>
        <RichEditor id="richeditor1" {...options}/>
      </div>
    )
  }
}
render(<Demo />, document.getElementById('content'))