todolist增加markdown模块
2024-09-01 07:06:07
markdown编辑器
利用`markdown_js`开源库实现todolist小项目的markdown日记本功能
之前的介绍随笔todoList
遇到的问题:
当从编辑器切换到list,然后再切换回来,之前输入的内容丢失
解决办法:在随路由切换组件时,组件会destory,然后重新被mounted,这是导致在
textarea
输入的markdown字符丢失的原因。解决办法是,在编辑器组件的beforemount
选项中写个函数,使得组件在渲染前检查应用state
的diary
属性中是否有保存的值,如果有,则复制给组件的md
属性。同时设置保存按钮,在保存时将数据保存到state中,如果没有用state,则应该通过emit方法,提交给父组件的data下的属性。导入markdown_js出现问题。
解决办法:之前我的导入方式是这样的:
import markdown from 'markdown';
htmlStr=markdown(input);
结果出错,原因在于markdown库导出的是一个对象,而不仅仅是一个函数。
解决办法:
import {markdown} from 'markdown';
htmlStr=markdown(input);
为markdown加上大括号后,就是从库中将markdown函数导出来。
意外的收获
犯了上面的错误之后,我到markdown的readme
上一看,只有在CMD下的导入代码,没有在ES6下的导入方法,看来我要露一手了。
我抱着试试看的心态fork了这个项目,然后在readme中把我上面写的代码加了进去。然后给官方仓库提交了一个PR,没过几分钟,我的PR被merged了!当时看到还是挺开心的,毕竟是走出了为开源项目贡献的第一步啊,我感觉胸前的红领巾更鲜艳了。莫哈哈哈。。。
所以说,给开源项目贡献并不是想象中的那么难,如果编程功力不够,我们还可以从别的方面来出自己的一份力,比如:
- 对于国外的项目,翻译文档
- 完善他们的README
- 使用中发现了BUG,给他们提交issues
总之一句话,我为人人,人人为我嘛。
最新文章
- C# 常用加密解密帮助类
- salt基本原理
- Spring 事物机制
- LightOJ 1074 Extended Traffic SPFA 消负环
- Learning WCF Chapter 3 Bindings One-Way and Duplex Communication
- 程序集引用异常 处理 app.config内控制runtime运行时应用的程序集版本指向 assemblyBinding结点 bindingRedirect
- 升级linux内核(2.6.32->;3.10.81),安装docker
- new/delete 和 new[]/delete[]
- Ubuntu安装pycharm
- 关于iOS中几种第三方对XML/JSON数据解析的使用
- LeetCode之“树”:Sum Root to Leaf Numbers
- 记一次erlang语言bug导致rabbitmq的队列没有消费者的问题
- Activity之间的跳转和数据传输
- Orders matters: seq2seq for set 实验
- 抓取mooc中国随笔
- 08:Vigenère密码
- 大数据入门第二十二天——spark(二)RDD算子(1)
- Python字符串颜色输出
- 解决 Eclipse Indigo 3.7、ADT 中文字体偏小,完美 Consolas 微软雅黑混合字体!
- docker 镜像导入导出[转]