小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器

  大家好,我是亓官劼(qí guān jié ),在【亓官劼】公众号、CSDN、GitHub、B站、华为开发者论坛等平台分享一些技术博文,主要包括前端开发、python后端开发、小程序开发、数据结构与算法、docker、Linux常用运维、NLP等相关技术博文,时光荏苒,未来可期,加油~
  如果喜欢博主的文章可以关注博主的个人公众号【亓官劼】(qí guān jié),里面的文章更全更新更快。如果有需要找博主的话可以在公众号后台留言,我会尽快回复消息,其他平台私信回复较慢。

由于学习工作的需要,算法刷题将会逐渐由C++向Python3过度,正在过度中,如实现的不太优美,请见谅。

本文原创为【亓官劼】(qí guān jié ),请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 全部文章请关注微信公众号【亓官劼】。

博主博客文章内容导航(实时更新)
更多优质文章推荐:

  • 收藏!最详细的Python全栈开发指南 看完这篇你还不会Python全栈开发 你来打我!!!
  • 一本教你如何在前端实现富文本编辑器
  • 小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器
  • Flask学习(基本语法)
  • 一文教会你Bootstrap,让你也可以快速建站
  • 一文教你如何白嫖JetBrains全家桶(IDEA/PtChram/CLion)免费正版
  • 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 1)
  • 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 2)
  • 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 3)
  • 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 4)
  • 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 5)
  • 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 6)
  • 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 7)

  Markdown是目前非常流行的一种标记语言,可以让我们快速对文章进行排版,并且具有较好的格式,应用场景非常多,目前很多网站都已经支持Markdown输入了。本文就将带你实现一个Markdown编辑器。
  在前端实现Markdown的话,我们有很多种方式,这里我们使用一个开源的Markdown编辑器showdown,这是一个开源的Markdown编辑器,我们可以使用他在前端快速的实现我们的Markdown编辑器的功能。
首先,我们去下载showdown的压缩包,我们可以使用GitHub下载:showdown的GitHub下载地址,进入之后我们将这个项目clone到本地即可下载这个项目。

  本文原创为CSDN博主亓官劼,原文链接为:小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器,请大家支持原创,拒绝抄袭。


GitHub可能下载会比较慢,我们可以使用手机开热点下载会快一点,或者使用(发挥下你的聪明才智)。
  下载到本地是一个压缩包,我们把它解压,然后拖到我们的项目地址,如果不是项目的话,我们直接拖到一个你喜欢的文件夹中,然后记住他的位置即可。我这里是在一个Flask项目里进行试验了,所以拖到了项目了(直接使用html也可以的,可以不使用项目)。
  在下载完之后我们就实现这个Markdown编辑器到我们的html中。首先我们要在我们的html的head中引入我们刚刚下载的文件的dist文件夹中的showdown.min.js文件。我这里的位置为:

<script type="text/javascript" src="/static/showdown-1.9.1/dist/showdown.min.js"></script>

这里的位置大家根据自己的实际情况继续修改。下面我们就来使用这个showdown来实现Markdown文本编辑器的一个功能。
  首先我们这里使用一个<textarea>作为输入框,然后使用一个<div>来进行展示,这里我们先测试功能,后面再进行一个美化(测试的时候界面很很很丑)。
现在的UI部分为:

<div class="markdown_class"><div class="markdown_input"><textarea id="markdown_input"></textarea></div><div class="markdown_output" id="markdown_output"></div>
</div>

现在的前端长这样,空荡荡的,啥也没有。
然后我们来进行一个配置,使得我们每次在<textarea>中输入的内容能够按照Markdown的语法进行转化,并且在markdown_output的div中进行展示出来。完整的代码为,在代码中进行了相关功能的注释。

  本文原创为CSDN博主亓官劼,原文链接为:小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器,请大家支持原创,拒绝抄袭。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Markdown实现</title><script type="text/javascript" src="/static/showdown-1.9.1/dist/showdown.min.js"></script>
</head>
<body>
<div class="markdown_class"><div class="markdown_input"><textarea id="markdown_input" onkeyup="show()"></textarea></div><div class="markdown_output" id="markdown_output"></div>
</div><script type="text/javascript">function show(){//获取markdown_input中的内容var text = document.getElementById("markdown_input").value;// 实例化一个converter,即转化器var converter = new showdown.Converter();// 使用converter将text中的Markdown语法转化为html格式,并且在markdown_output中进行显示document.getElementById("markdown_output").innerHTML = converter.makeHtml(text);
}
</script>
</body>
</html>

这时当我们在textarea中输入Markdown文本时,将会在markdown_output中进行显示出来,这里写成了一个js的函数,我们设置每次在textarea中进行keyup时,即我们松开按键时,就更新一次markdown_output的内容,以此来达到实时的展示效果。这时的效果图为:

  到这里大家都可以完成一个Markdown的实时编辑展示功能了!下面我们就来将这个瞅瞅的页面美化一下吧(博主的有限的审美,大家可以自行的发挥)。
这里我们将markdown_inputmarkdown_output设置为大小一样,并排放,上面再加个标题,就好看很多啦~(相对与现在)。这里我们创建一个demo.css文件,用来设计这个样式。这里先上效果图吧:

  本文原创为CSDN博主亓官劼,原文链接为:小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器,请大家支持原创,拒绝抄袭。

html代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Markdown实现</title><script type="text/javascript" src="/static/showdown-1.9.1/dist/showdown.min.js"></script><link rel="stylesheet" href="/static/demo.css">
</head>
<body>
<div class="markdown_class"><div class="markdown_title"><h1>Markdown文本编辑器</h1></div><div class="markdown_input"><textarea id="markdown_input" onkeyup="show()"></textarea></div><div class="markdown_output" id="markdown_output"></div>
</div><script type="text/javascript">function show(){//获取markdown_input中的内容var text = document.getElementById("markdown_input").value;// 实例化一个converter,即转化器var converter = new showdown.Converter();// 使用converter将text中的Markdown语法转化为html格式,并且在markdown_output中进行显示document.getElementById("markdown_output").innerHTML = converter.makeHtml(text);
}
</script>
</body>
</html>

css代码:

.markdown_title{text-align: center;
}
.markdown_class{height: 900px;width: 950px;margin-left: 130px;
}
.markdown_output{width: 450px;height: 600px;border: 2px slategrey solid;position: relative;float: right;background-color: #eeeeee;
}
.markdown_input{width: 450px;height: 600px;border: 2px slategrey solid;float: left;
}
#markdown_input{width: 450px;height: 600px;border: 2px slategrey solid;
}

到这里样式是没问题了,可以进行实时的一个输入和展示。但是我们发现这里Markdown显示的格式不是太好看,这里我们可以再优化一下,这里使用的是李笑来老师的一个Markdown显示的风格。代码为:

    .markdown-here-wrapper {font-size: 16px;line-height: 1.8em;letter-spacing: 0.1em;
}pre, code {font-size: 14px;font-family: Roboto, 'Courier New', Consolas, Inconsolata, Courier, monospace;margin: auto 5px;
}code {white-space: pre-wrap;border-radius: 2px;display: inline;
}pre {font-size: 15px;line-height: 1.4em;display: block; !important;
}pre code {white-space: pre;overflow: auto;border-radius: 3px;padding: 1px 1px;display: block !important;
}strong, b{color: #BF360C;
}em, i {color: #009688;
}hr {border: 1px solid #BF360C;margin: 1.5em auto;
}p {margin: 1.5em 5px !important;
}table, pre, dl, blockquote, q, ul, ol {margin: 10px 5px;
}ul, ol {padding-left: 15px;
}li {margin: 10px;
}li p {margin: 10px 0 !important;
}ul ul, ul ol, ol ul, ol ol {margin: 0;padding-left: 10px;
}ul {list-style-type: circle;
}dl {padding: 0;
}dl dt {font-size: 1em;font-weight: bold;font-style: italic;
}dl dd {margin: 0 0 10px;padding: 0 10px;
}blockquote, q {border-left: 2px solid #009688;padding: 0 10px;color: #777;quotes: none;margin-left: 1em;
}blockquote::before, blockquote::after, q::before, q::after {content: none;
}h1, h2, h3, h4, h5, h6 {margin: 20px 0 10px;padding: 0;font-style: bold !important;color: #009688 !important;text-align: center !important;margin: 1.5em 5px !important;padding: 0.5em 1em !important;
}h1 {font-size: 24px !important;border-bottom: 1px solid #ddd !important;
}h2 {font-size: 20px !important;border-bottom: 1px solid #eee !important;
}h3 {font-size: 18px;
}h4 {font-size: 16px;
}table {padding: 0;border-collapse: collapse;border-spacing: 0;font-size: 1em;font: inherit;border: 0;margin: 0 auto;
}tbody {margin: 0;padding: 0;border: 0;
}table tr {border: 0;border-top: 1px solid #CCC;background-color: white;margin: 0;padding: 0;
}table tr:nth-child(2n) {background-color: #F8F8F8;
}table tr th, table tr td {font-size: 16px;border: 1px solid #CCC;margin: 0;padding: 5px 10px;
}table tr th {font-weight: bold;color: #eee;border: 1px solid #009688;background-color: #009688;
}

我们可以将这个代码写到一个CSS文件中,然后引入到我们的html中,也可以直接写在html中的<style>标签中,效果图为:
  好了,这样我们一个前端的Markdown文本编辑器就成功的实现了,并且进行了一定的美化。如果大家需要插入到项目中的话,大家可以根据自己项目的需要进行相对应的一个更改美化,这篇文章就到这里啦!如果喜欢的话可以点个关注呦~

  大家好,我是亓官劼(qí guān jié ),在【亓官劼】公众号、CSDN、GitHub、B站、华为开发者论坛等平台分享一些技术博文,主要包括前端开发、python后端开发、小程序开发、数据结构与算法、docker、Linux常用运维、NLP等相关技术博文,时光荏苒,未来可期,加油~
  如果喜欢博主的文章可以关注博主的个人公众号【亓官劼】(qí guān jié),里面的文章更全更新更快。如果有需要找博主的话可以在公众号后台留言,我会尽快回复消息,其他平台私信回复较慢。

由于学习工作的需要,算法刷题将会逐渐由C++向Python3过度,正在过度中,如实现的不太优美,请见谅。

本文原创为【亓官劼】(qí guān jié ),请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 全部文章请关注微信公众号【亓官劼】。

小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器相关推荐

  1. [免费专栏] Android安全之Android Xposed插件开发,小白都能看得懂的教程

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  2. yolov5使用2080ti显卡训练是一种什么样的体验我通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程。>>>>>>>>>第二章番外篇

    第二章番外篇:yolov5通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 前期准备: 2 ...

  3. yolov5-4.0环境搭建,零基础小白都能看得懂的教程。YOLOv5搭建的最快搭建方式,踩坑经历详谈)yolov5/yolov4/yolov3/yolov3通>>>>>>>>>>>>>>>>>第一章

    第一章:python最新YOLOv5-4.0环境搭建,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 环境准备: yolov5-4.0环境搭建整体说明 2,anaconda的 ...

  4. 小白都能看得懂的java虚拟机内存模型

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:土豆是我的最爱 blog.csdn.net/qq_37141 ...

  5. 轻松使用终端开启macOS系统的隐藏功能,小白都能看得懂

    不管是在Windows系统还是在macOS系统中,都有一个名为"终端"的应用,对于我们普通人来说它就好像是个很深奥的东西,只有技术流,程序猿才能驾驭.其实不然,今天未来小编就整理了 ...

  6. 百度云服务器BCC 搭建ftp(基于Ubuntu 16.04 LTS)新手小白也可以看得懂的教程

    看了网上很多关于Ubuntu下vsftpd的安装配置教程之后,发现虽然大部分功能都能使用,但是我最关心的上传下载这个关键功能没有办法实现,然后经过多次尝试,终于完成了最后的配置,同时本地Windows ...

  7. 小白都能看得懂的ZBrush基础教学

    ZBrush 是一个数字雕刻和绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业.在一个简洁的界面中,ZB为当代数字艺术家提供了世界上最先进的工具.以实用的思路开发出的功能组合,在激发艺术 ...

  8. 【Poco学习笔记】Poco库win10下编译(超详细,小白都能看得懂)

    目录 前言 一.前期准备 1.1 安装Openssl 1.2 下载Poco的源码 二.编译源码 三.报错 3.1 Foundation_vs160找不到Windows SDK版本8.1 3.1.1 报 ...

  9. 常用linux命令及图解(实践文档,小白都可以看得懂)

    14.mv  移动文件或目录和更改名字(3.29) 以上是更改名字了,第二张图可以移动到其他目录并改名 15.rm   remove  删除(默认无法删除目录) -f   强制删除 -r  递归删除目 ...

最新文章

  1. 用了 Elasticsearch 后,查询起飞了!
  2. 开启报名 | 青源 Salon 第 1 期:强化学习专场,报告,海报,激辩,这是年轻人的会场
  3. 【Vegas原创】SQL case when 用法
  4. 马斯克的中国救星,特斯拉上海工厂内部首度曝光,数百台机器人维持疫情期间生产...
  5. 【HTML】框架集(Framesets)
  6. ASP的Server.UrlEncode和Asp.Net的Server.UrlEncode的返回结果不同
  7. Lodop输出页面input文本框的最新值
  8. 【Spark】Spark的一个案例 Encountered removing nulls from dataset or using handleInvalid = “keep“ or “skip“
  9. 人工智能语音实训平台实验指导书
  10. Jsonp解决跨域问题原理
  11. 展开说说:Adobe XD 哪个版本好用?
  12. 人工智能在金融领域发展中,主要面临哪些风险?
  13. uClinux移植概述
  14. PS 考试案例 03笔记
  15. Dnw下载工具还是Linux下的好(For OK6410)
  16. 什么是小波?小波是什么?
  17. 全球5G发展呈现九大趋势。
  18. 南加州大学计算机科学案例,南加州大学计算机科学硕士录取
  19. mysql打平子表_对于oracle进行简单树查询(递归查询)
  20. python迅雷自动下载_Python3.x+迅雷x 自动下载高分电影的实现方法

热门文章

  1. M1版MacBook不能兼容所有的X86软件
  2. Eclipse设置成黑色背景(黑色主题)
  3. 1014 福尔摩斯的约会
  4. R语言使用:符号生成向量数据、使用pie函数可视化饼图、自定义设置饼图色彩为彩虹色、使用box函数在当前图上加个方框
  5. 分布式键值存储系统ETCD调研
  6. 2007年冲杀职场的10只魔戒
  7. python什么语句提前结束循环_在循环语句中,break语句的作用是提前结束循环。
  8. 腾讯线上培训PPT资料 web安全
  9. jQuery教程8-特效函数
  10. web前端期末大作业:青岛旅游网页主题网站设计——青岛民俗4页 HTML+CSS 民俗网页设计与制作 web网页设计实例作业 html实训大作业