markdown在前端的简单使用

目录

前言

一、引用editor.md进行markdown编辑器使用

介绍

使用准备

二、开始使用

创建

查看

修改编辑

三、总结与感悟

四、最后


前言

最近女朋友在做一个项目,她想使用markdown来进行博客文章的编辑,她问我该怎样实现对博客的创建、编辑、浏览。其实使用markdown对博客的编写,我也是第一次。男人嘛不行也得行,随后我就研究了一手,顺便写下这篇文章(其实在写博客上我还是比较偷懒的),文章内容将描述如何简单的使用markdow的。

一、引用editor.md进行markdown编辑器使用

介绍

editor.md可以被引用来对markdown文本进行编辑,具体使用样例可以查看csdn的文章编写或editor官网(Editor.md - 开源在线 Markdown 编辑器 (ipandao.com)),这里将不再详细介绍editor.md。

使用准备

下载editor.md,editor的下载有多种,这里说两种:1.使用github进行下载,2.使用npm进行下载。如果你没有安装npm或不会使用,这里建议你使用github进行下载。

window下npm命令下载-》win+r键输入cmd调出黑框口-》输入npm i editor.md -g进行全局安装;此段的第二张图为点击github下载后弹出的下载框。

我们在查看官网时会发现editor依赖于jQuery、CodeMirror、marked、FontAwesome、github-markdown.css、KaTeX、Rephael.js、prettify.js、flowchart.js、sequence-diagram.js、Prefixes.scss的。Jquery我在此列在第一,使用editor时jquery是必不可少的,所以我们还需下载jquery,(jquery官网--jQuery);

二、开始使用

 

会不多说,我们先来一个创建案列

创建

<!DOCTYPE html>
<html>
<head>
	<title>markdown编辑器的使用--创建文档</title>
	<link rel="stylesheet" href="static/editormd/css/editormd.css" />
</head>
<body>
	<div id="articleContainer">
		<textarea class="editormd-markdown-textarea" name="markdownText" id="origin">
			### 关于 Editor.md**Editor.md** 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。
		</textarea>
	    <textarea class="editormd-html-textarea" name="htmlText" id="message"></textarea>
	</div>
	<div >
		<button id="mybtn">获取</button>
	</div>
	<script src="static/jquery-1.11.3/jquery.min.js"></script>
	<script src="static/editormd/editormd.min.js"></script>
	<script type="text/javascript">
	    $(function() {
	        var editor = editormd("articleContainer", {
	            width  : "100%",
	            height : "500",//不能使用百分比,使用后,将根据内容自动收放
	            watch  : false,//是否开启预览
	            markdown: "",//markdown文本内容
	            saveHTMLToTextarea: true,    // 是否将文本保存 HTML 到 Textarea
	            path   : "static/editormd/lib/"//lib的路径
	            /*//下面三个属性,当文章需要包含图片时添加
	            imageUpload : true,//是否开启图片自动上传
                imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],//可上传的图片格式
                imageUploadURL : "网络地址/项目名/上传路径"//图片上传地址,如: http:localhost:8080/mylove/imageUpload.do
                */
	        });
	        //由于editot.md是懒加载
	        setTimeout(function(){
            //获取编辑器内容
            	console.log(editor.getMarkdown());
        	},500);
        	
        	//绑定点击事件
	        $("#mybtn").click(function(){
	        	//这里没有去写后端接口了,将内容存至浏览器存储以便查看和编辑
	        	window.localStorage.setItem("data",JSON.stringify(editor.getMarkdown()));
	        });
	    });
	</script>

</body>
</html>

代码实现效果

 

 

查看

<!DOCTYPE html>
<html>
<head>
	<title>查看markdown生成的文档</title>
	<link rel="stylesheet" href="static/editormd/css/editormd.css" />
</head>
<body>
	<div id="articleContainer">
	    <textarea class="editormd-html-textarea" name="message" id="message"></textarea>
	</div>
	<script src="static/jquery-1.11.3/jquery.min.js"></script>
	<script src="static/editormd/editormd.min.js"></script>
	<!-- 一下是将mark转html需要的js -->
	<script src="static/editormd/lib/marked.min.js"></script>
	<script src="static/editormd/lib/prettify.min.js"></script>
	<script type="text/javascript">
		var testEditor;
		$(function(){
			//将json格式的字符串转化为一个javaScript对象
			//var myhtml = JSON.parse(window.localStorage.getItem("data"));
            //$("#message").html(myhtml);//这里使用将markdown文本先html进document再转也可以
			var md = JSON.parse(window.localStorage.getItem("data"));
            //使用editor.md的markToHMLT将markdown文本转成html
			testEditor = editormd.markdownToHTML("articleContainer",{
				htmlDecode: "style,script,iframe",
                emoji: true,
                taskList: true,
                tocm: true,
                tex: true, // 开启科学公式TeX语言解析支持,默认不解析
                //flowChart: true, // // 开启流程图解析支持,默认不解析
                //sequenceDiagram: true,// 开启时序图(序列图)解析支持,默认不解析
           	    watch:true, //开启实时预览,查看时开不开都一样
                codeFold: false,//代码是否堆叠
                editor:false,//是否可编辑
                markdown: md,//将markdown文本加入编辑器
			});
		});
	</script>
</body>
</html>

实现情况

修改编辑

<!DOCTYPE html>
<html>
<head>
	<title>编辑文档</title>
	<link rel="stylesheet" href="static/editormd/css/editormd.css" />
	<style type="text/css">
		#articleContainer{
			width: 100%;
			height: 500px
		}
	</style>
</head>
<body>
	<div id="articleContainer">
		<textarea class="editormd-markdown-textarea" name="markdownText" id="origin">
		</textarea>
	    <textarea class="editormd-html-textarea" name="htmlText" id="message"></textarea>
	</div>
	<script src="static/jquery-1.11.3/jquery.min.js"></script>
	<script src="static/editormd/editormd.min.js"></script>
	<script src="static/editormd/lib/marked.min.js"></script>
	<script src="static/editormd/lib/prettify.min.js"></script>
	<script type="text/javascript">
		var testEditor;
		$(function(){
			//将json格式的字符串转化为一个javaScript对象
			var myhtml = JSON.parse(window.localStorage.getItem("data"));
			$("#origin").html(myhtml);
			var editor = editormd("articleContainer", {
	            width  : "100%",
	            height : "500",
	            watch  : true,
	            markdown: "",
	            saveHTMLToTextarea: true,    // 保存 HTML 到 Textarea
	            path   : "static/editormd/lib/"
	        });
		});
	</script>
</body>
</html>

修改这里和创建其实在前端显示区别不大,就不再上图了。

三、总结与感悟

在我们三段代码做完后,我们不妨打开浏览器看看源码,创建代码中,我给出了两个textarea,并分别给予它们id和name,为什么我要多此一举呢?  我们不妨假设这两个文本域分别会包含不同的东西,见下图,id="origin"的textarea中含有markdown文本内容,id="message"的textarea中含有html文本内容。

那知道有这两种文本内容有什么用呢?这个问题涉及到后端存储。我们可以将博客的具体内容存入数据库,也可将博客的内容按照预先制定好的模板生成静态(.html)或伪静态文件存入文件夹。既然说到将具体内容存到数据库,这里建议在mysql数据库中将博客的内容字段设置为text。

四、最后

感谢我的女友,感谢csdn,让我又有了一次学习成长的机会。如果有问题的小伙伴可以留言联系我,当然有些问题我也可能解答不了。后期若发现此篇文章还有不足,请及时联系我,我将会进行修改。

 

 

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端整合Markdown是指将Markdown编辑器整合到前端页面中,使用户可以在页面上编辑和展示Markdown格式的文本。这个过程可以通过使用Vue组件来实现。\[1\] 首先,你可以使用Vue组件来创建一个Markdown编辑器组件,该组件可以提供编辑和展示Markdown文本的功能。你可以使用Vue的相关指令和事件来实现文本的编辑和保存功能。\[2\] 其次,你可以在前端页面中引入这个Markdown编辑器组件,并将其放置在合适的位置。用户可以在这个组件中输入Markdown文本,并进行编辑和保存操作。\[1\] 最后,你可以在前端页面中使用Markdown展示组件来展示已保存的Markdown文本。这个组件可以将Markdown文本转换为HTML,并在页面上显示出来。\[1\] 总结来说,前端整合Markdown的过程包括创建Markdown编辑器组件、引入编辑器组件到前端页面中,并使用Markdown展示组件来展示已保存的Markdown文本。这样用户就可以在前端页面上方便地编辑和展示Markdown文本了。\[1\] #### 引用[.reference_title] - *1* *2* [Vue整合Markdown组件+SpringBoot文件上传+代码差异对比](https://blog.csdn.net/FUTEROX/article/details/127455288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Springboot整合markdown编辑器【保姆级简易教程】](https://blog.csdn.net/weixin_44045828/article/details/129579946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值