markdown编辑器


利用`markdown_js`开源库实现todolist小项目的markdown日记本功能

todolist小项目地址

之前的介绍随笔todoList

markdown-js仓库

遇到的问题:

  1. 当从编辑器切换到list,然后再切换回来,之前输入的内容丢失

    解决办法:在随路由切换组件时,组件会destory,然后重新被mounted,这是导致在textarea输入的markdown字符丢失的原因。解决办法是,在编辑器组件的beforemount选项中写个函数,使得组件在渲染前检查应用statediary属性中是否有保存的值,如果有,则复制给组件的md属性。同时设置保存按钮,在保存时将数据保存到state中,如果没有用state,则应该通过emit方法,提交给父组件的data下的属性。

  2. 导入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

总之一句话,我为人人,人人为我嘛。

todolist增加markdown模块的更多相关文章

  1. Python 之 【markdown 模块的学习】

    摘要: markdown工具,可以将txt转化成html格式.这一类工具的作用是将按一定格式写成的可读性强的文本文件转化为结构化的标准xhtml或html.Linux 下面也有markdown: zh ...

  2. Android程序ToDoList增加配置项页面

    本文要做的事情就是在前面做的简单的ToDoList程序上增加一个配置项页面(Reference).这个Reference页面也非常简单: 这个ToDoList现在有两个页面,主页面能填写待办事项,然后 ...

  3. 为nginx增加nginx_http_concat模块

    为nginx增加nginx_http_concat模块 时间 2013-06-05 22:14:56  我行我思 原文  http://www.fanjun.me/?p=562 主题 Nginx 缘由 ...

  4. 给已经编译运行的Apache增加mod_proxy模块的配置方法

    在Linux系统下,需要给已经编译运行的Apache增加mod_proxy模块,可以按照如下方法配置. 具体配置步骤如下: 1. 首先定位到Apache源码的 proxy目录 # cd /root/s ...

  5. nginx增加第三方模块

    增加第三方模块 ============================================================ 一.概述nginx文件非常小但是性能非常的高效,这方面完胜ap ...

  6. phpize增加php模块

    phpize增加php模块 张映 发表于 2010-02-09 分类目录: php 一,phpize的好处 什么时候我们要用phpize呢?我们在安装php时: './configure' '--pr ...

  7. Debian 为nginx增加第三方模块

    为nginx增加第三方模块需要重新编译nginx的,但是debian在安装nginx的时候做了很多事情,比如systemd,/etc/nginx/里的各种文件,所以我们最好在debian源代码包的基础 ...

  8. nginx增加新模块

    以gunzip这个模块为例,讲述一下,在nginx中如何安装新的模块 1.首先查看nginx已经安装了哪些模块. nginx –V 2.发现没有gunzip模块,安装 进入nginx的安装目录中,不是 ...

  9. 已经编译安装的nginx/tenginx编译增加新模块

    只适用于自行编译安装的nginx配置 业务变更带来的Nginx增加模块需求 由于业务从php转为go开发,需要用到Http2的协议.这种协议在Nginx上需要http_v2_module这个模块的支持 ...

随机推荐

  1. 成功解决在Python文件上右键菜单无“Edit with IDLE”选项

    我电脑是Win7旗舰版,之前电脑上安装的是Python2.6版本的,前两天为了体验一下Microsoft Excel与Python之间互操作, 下载并安装了DataNitro,在安装的时候脑残的安装了 ...

  2. AIX nfs简单说明

    AIX 系统 NFS设置 一.NFS守护进程:NFS是通过使用许多用户级的守护进程及远程过程调用等网络应用程序来实现的.而NFS服务器及客户端的守护进程并不完全一致. 1. 作为NFS服务器所需的守护 ...

  3. 从npm到vue和nodejs

    https://www.npmjs.com.cn/ vue和nodejs Windows 下安装NPM:https://www.cnblogs.com/interdrp/p/6779973.html ...

  4. android 发送url带中文出现乱码怎么解决

    上传的时候参数中带中文的时候发送参数的时候就有可能出现乱码,这种情况怎么解决呢,就是设置url的格式为utf-8 httpRequest.setEntity(new UrlEncodedFormEnt ...

  5. PAT甲级 1130. Infix Expression (25)

    1130. Infix Expression (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Give ...

  6. 第二天:Javascript事件

    事件:是可以被Javascript侦测到的行为,例如鼠标的点击,鼠标的移动,常见的事件如下   代码实现“点击事件”: <body> <button onclick="de ...

  7. 使用nohup后台执行ftp传输命令

    因为有的时候会需要长时间传输文件,所以想用nohup 结合shell脚本一起使用,就不用一直在电脑面前了 . nohup 用法: nohup command & 然后就会出现 对应的 pid ...

  8. Apollo 配置详细步骤(Windows环境)

    一. 准备工作 1.下载 apollo 安装包 下载链接:http://activemq.apache.org/apollo/download.html 2.下载 JavaJDK 安装包 ( apol ...

  9. INDEX--从数据存放的角度看索引

    测试表结构: CREATE TABLE TB1 ( ID ,), C1 INT, C2 INT ) 1. 聚集索引(Clustered index) 聚集索引可以理解为一个包含表中除索引键外多有剩余列 ...

  10. 【javascript】您好, 您要的ECMAScript6速记套餐到了 (一)

    [前言]本文“严重参考” 自阮一峰老师写的ES6文档,在此我郑重感谢他沉默无声的帮助 总结一下ES6为 javascript中的 对象/数组/函数 这JS三巨头所提供的更简洁优雅的书写方式,以及扩展的 ...