[Web] 简易Markdown可预览编辑器 —— Codemirror+Marked+Prism
来源:互联网 发布:a5淘宝客助手v1.8 编辑:程序博客网 时间:2024/04/28 10:57
代码很简单,都是在用别人写好的东西,觉得这个还是有点用,所以简单记录一下。
在线预览: http://118.89.16.142:8000/csdndemo/markdown
插件
- 文本编辑: Codemirror
- Markdown解析: Marked
- Markdown Css: Github-markdown-css
- 代码高亮: prismjs
效果预览
代码
除了插件那些的js
和css
文件,就只有三个自己要写的。主页index.html
,样式style.css
,还有一个初始化 codemirror
和 marked
配置的 main.js
。
index.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Markdown</title> <link rel="stylesheet" href="codemirror/lib/codemirror.css"> <link rel="stylesheet" href="codemirror/theme/material.css"> <link rel="stylesheet" href="codemirror/addon/dialog/dialog.css"> <link rel="stylesheet" href="stylesheets/style.css"> <link rel="stylesheet" href="stylesheets/github-markdown.css"> <link rel="stylesheet" href="stylesheets/prism.css"></head><body> <div class="editor-wrap"> <textarea name="editor" id="editor" cols="30" rows="10"></textarea> </div> <div class="preview-wrap"> <div class="markdown-body"></div> </div> <script src="javascripts/jquery.min.js"></script> <script src="javascripts/marked.min.js"></script> <script src="codemirror/lib/codemirror.js"></script> <script src="codemirror/addon/edit/continuelist.js"></script> <script src="codemirror/addon/edit/matchbrackets.js"></script> <script src="codemirror/addon/edit/closebrackets.js"></script> <script src="codemirror/mode/markdown/markdown.js"></script> <script src="codemirror/keymap/sublime.js"></script> <script src="codemirror/addon/search/search.js"></script> <script src="codemirror/addon/search/searchcursor.js"></script> <script src="codemirror/addon/dialog/dialog.js"></script> <script src="codemirror/addon/comment/comment.js"></script> <script src="codemirror/addon/wrap/hardwrap.js"></script> <script src="javascripts/prism.js"></script> <script src="javascripts/main.js"></script></body></html>
main.js
(function() { $(function() { // marked var markedRender = new marked.Renderer(); marked.setOptions({ renderer: markedRender, gfm: true, tables: true, breaks: true, // '>' 换行,回车换成 <br> pedantic: false, sanitize: true, smartLists: true, smartypants: false }); // codemirror editor var editor = CodeMirror.fromTextArea($('#editor').get(0), { mode: 'markdown', lineNumbers: true, autoCloseBrackets: true, matchBrackets: true, showCursorWhenSelecting: true, lineWrapping: true, // 长句子折行 theme: "material", keyMap: 'sublime', extraKeys: {"Enter": "newlineAndIndentContinueMarkdownList"} }); editor.on('change', editorOnHandler); }); function editorOnHandler(cm, co) { $('.markdown-body').html(marked(cm.getValue())); $('.markdown-body pre code').each(function(i, block) { Prism.highlightElement(block); }); }})();
style.css
html,body { margin: 0px; padding: 0px; height: 100%;}.editor-wrap { float: left; width: 50%; height: 100%; overflow: auto;}.editor-wrap .CodeMirror { font-size: 18px; height: 100%;}.preview-wrap { float: left; width: 50%; height: 100%; overflow: auto;}.preview-wrap .markdown-body { box-sizing: border-box; width: 100%; max-width: 980px; padding: 45px; font-size: 18px;}.preview-wrap .markdown-body ul > li { list-style-type: disc;}.preview-wrap .markdown-body ol > li { list-style-type: lower-roman;}
附件
完整代码: codemirror-markdown - Github
0 0
- [Web] 简易Markdown可预览编辑器 —— Codemirror+Marked+Prism
- [NodeJS] Express 处理 markdown——marked+prism+github-markdown-css
- Atom编辑器 中预览markdown
- 简易WEB编辑器
- 代码编辑器CodeMirror
- CodeMirror源码编辑器
- 在线代码编辑器codeMirror
- 利用marked.js写个简单Markdown编辑器(1)
- Flex:Web报表编辑器——MyReport (可下载使用)
- marked.js简易手册
- 代码编辑器 Codemirror 常用API
- 菜鸟教程投稿页面的Markdown编辑器—可插入程序代码
- CSDN-markdown编辑器的简易使用教程
- Prism应用开发(二)——Prism应用程序初始化
- Prism框架(二)——Prism应用程序初始化
- Prism框架(二)——Prism应用程序初始化
- Prism应用开发(二)——Prism应用程序初始化
- Prism框架(二)——Prism应用程序初始化
- 嵌入式Linux字符设备驱动模型详解
- 第16周实践——复数结构体
- XC8例子:MPLAB X 1.60, xc8, PIC16f690
- Java的LockSupport.park()实现分析
- ROS官方教程[翻译]---xacro的介绍与使用
- [Web] 简易Markdown可预览编辑器 —— Codemirror+Marked+Prism
- 解决 Android N 上 报错:android.os.FileUriExposedException
- ORACLE EBS建立一个简单的Form
- 网站必须从注重用户使用习惯去布局
- ios 如何实现UIWebView的缓存
- RTSP协议、RTMP协议、HTTP协议的区别
- 网站内链必须合理的控制数量
- 第十六周 OJ 学生管理结构体
- Impala内存优化实战案例