hinesboy / mavonEditor

mavonEditor - A markdown editor based on Vue that supports a variety of personalized features
http://www.mavoneditor.com/
MIT License
6.43k stars 917 forks source link

关于图片处理相关的文档什么时候可以修正和优化一下? #836

Open fxxkjs opened 1 year ago

fxxkjs commented 1 year ago

Snipaste_2023-02-20_08-13-24 Snipaste_2023-02-20_08-13-05

有错误的地方


imgDel(pos)  pos是数组

filename 应该是imgID的意思

$refs.toolbar_left.$imgAddByFilename 和 $imgAddByUrl 的参数应该是(imgID, imgFile); 或者 (imgID, {name: "imgName", miniurl:"data:image/jpeg;base64,/..........",},...theArgs); 或者 (imgID, {name: "girl", miniurl:"https://tse1-mm.cn.bing.net/th/id/OIP-C.YmgWcV-ySr2GwNPS3vfOfgHaKw?pid=ImgDet&rs=1",},...theArgs); 其功能是在toolbar_left.img_file.unshift([imgID,imgFile]) 其他图片事件还没有测

还有 1.通过引入对象获取: import {mavonEditor} from ... 等方式引入后,此时$vm即为mavonEditor 这句话我不是太理解

希望您看到后修正和优化一下


> 其次,是否可以在后续版本中添加一个把当前文档中的图片自动添加到img_file中的功能,用来实现对图片的管理
```javasrcipt
比如说
在md内容中匹配到url是/getimg/test.jpg的图片,将当前图片push到img_file中
像这样  ![test.jpg](/getimg/test.jpg)

而url是http开头的则不做处理
像这样 ![test.jpg](http://localhost:8080/getimg/test.jpg)
RayGuo-ergou commented 1 year ago

filename 应该是imgID的意思

这里filename是正确的,只是filename是一个自动增加的index

还有 1.通过引入对象获取: import {mavonEditor} from ... 等方式引入后,此时$vm即为mavonEditor 这句话我不是太理解

意思就是如果你用

 import {mavonEditor} from .

的话就将文档里的$vm替换为mavonEditor. 至于ref的情况,建议读一下vue refs on component的文档

最后,如果你觉得文档里有错误或者纰漏的话,更好的方式是提交一个PR。

其次,是否可以在后续版本中添加一个把当前文档中的图片自动添加到img_file中的功能,用来实现对图片的管理

你指的是否是 image

RayGuo-ergou commented 1 year ago

filename 应该是imgID的意思

这里filename是正确的,只是filename是一个自动增加的index

看了下source code,你说的是对的。image被存在一个2d array里:[number, File][]。叫做filename可能确实不太准确,不过pos/position的说法应该还是相对准确的。

fxxkjs commented 1 year ago

感谢回复,我不怎么会用git,PR我不知道在哪,只知道issues,对此表示歉意!

filename这个参数绝对是有大问题的,imgAdd中filename描述为写在md中的文件名,实际上是img 的key ,并且pos参数是个数组而不是文档中的imgName (文档已更正)

filename在$vm.$refs.toolbar_left.$imgAddByFilename(>=2.1.6)和$vm.$imgAddByUrl(>=2.1.11)也是key,并且不需要是文档中描述的 《文件别名为filename(filename 必须为 ./filename 样式),》,可以是任意num或str,并且有可能会和自增的numKey冲突

filename,也就是img_file中会自增num的key,在某些情况下会从num类型0变成str类型./0

其次,在保存fileName时,会把文件名中的-删除,比如te-st.jpg,会把名字中的-去掉变成test.jpg,导致使用imgDel请求服务器删除图片时从参数中拿不到正确的文件名

$vm.$img2Url(>=2.1.11)的filename也是去正则匹配那个自增的key,而不是像文档中描述的匹配文件名去替换url

至于图片管理,在有默认值value或使用js更新value或手动在文档中增删!【name】(url)时或刷新后,toolbar_left中的imgBar管理没有响应或变成空,我认为应该通过正则匹配后自动加入toolbar_left中的imgBar,使文档中的!【name】(url)和toolbar_left中的imgBar保持同步。同步原则是http开头的不同步,/url/imgname.jpg同步 img

import {mavonEditor} from . 我能理解这句话的作用,但我不理解应该from什么, from 一个 . 吗?

如果有后续版本更新的话,希望提供一下清空toolbar_left中undo: true, // 上一步redo: true, // 下一步内容记录的回调,因为通过js更新文档内容后,比如说从a.md跳转到展示b.md后,可以通过上一步回到a.md,而且监听不到。

上述内容我通过自己的方式解决并上线了,webnote.fun。mavonEditor是我知道的最好的md包,希望越做越好。

RayGuo-ergou commented 1 year ago
Key 冲突 > filename在$vm.$refs.toolbar_left.$imgAddByFilename(>=2.1.6)和$vm.$imgAddByUrl(>=2.1.11)也是key,并且不需要是文档中描述的 《文件别名为filename(filename 必须为 ./filename 样式),》,可以是任意num或str,并且有可能会和自增的numKey冲突 我没有试过这个function但是我相信你说的现象是存在的,因为我自己尝试过当上传3个图片时,使用 ```js $vm.$refs.toolbar_left.$imgDelByFilename(2) ``` 之后再添加图片会覆盖。这个可以算是一个bug或者glitch吧。但是我们可以给使用这些function加上限制,算是一个work around吧。 比如说你提到的`$imgAddByFilename`,就严格按照文档来*filename 必须为 ./filename 样式*。 开发者在写文档的时候肯定考虑到了你说的这种情况。
import issue > import {mavonEditor} from . 我能理解这句话的作用,但我不理解应该from什么, from 一个 . 吗? 这里`.`也算是一个placeholder,一般来说指的是 ```js import mavonEditor from 'mavon-editor'; ```
Image management > 至于图片管理,在有默认值value或使用js更新value或手动在文档中增删!【name】(url)时或刷新后,toolbar_left中的imgBar管理没有响应或变成空,我认为应该通过正则匹配后自动加入toolbar_left中的imgBar,使文档中的!【name】(url)和toolbar_left中的imgBar保持同步。同步原则是http开头的不同步,/url/imgname.jpg同步 这个我个人感觉完全没有必要就是了。`[ALT](URL)`管理的话改url不就好了?而且右边还可以看到preview。 刷新后不存在了是因为本来你上传的图片就是一个在内存里的[File](https://developer.mozilla.org/en-US/docs/Web/API/File),要实现的话可以用[LocalStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)