<!DOCTYPE html> <html lang="zh"> <head> <title>Marked Emoji Test</title> <meta charset="UTF-8"> <meta name="description" content="" /> <meta name="keywords" content="" /> <link rel="stylesheet" href="../dist/css/editormd.min.css" /> <style> body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button, article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { margin:0; padding:0; } article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {display: block;} audio, canvas, video {display: inline-block;} body, button, input, select, textarea {font:12px/1.5 Tahoma, "Hiragino Sans GB", "Microsoft Yahei", Arial;} body{font-size:12px;color:#666;background:#fff url(../images/) no-repeat left top;} body{font-size:14px;color:#444;font-family:"微软雅黑",Arial;background:#fff;padding: 15px;} a{color:#444;text-decoration: none;} a:hover{color:#065BC2;text-decoration: none;} .clear{zoom:1;} .clear:after{content:"";height:0;visibility:hidden;clear:both;display:block;} img{border:none;vertical-align: middle;} ul, ol {margin-left: 18px;} table { margin: 10px 0; border-collapse: collapse; } table th, table td { padding: 5px 8px; border: 1px solid #ddd; } pre { padding:8px;border-radius:3px;border:1px solid #ddd;background:#f6f6f6;margin: 15px 0;display: inline-block; } pre code { } .editormd-logo, .editormd-logo-4x { font-family: editormd-logo; speak: none; font-style: normal; font-weight: 400; font-variant: normal; text-transform: none; font-size: inherit; line-height: 1; display: inline-block; text-rendering: auto; vertical-align: inherit; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .editormd-logo:before, .editormd-logo-4x:before { content: "\e1987"; } .editormd-logo-4x { font-size:4em; } </style> </head> <body> <i class="editormd-logo editormd-logo-4x"></i><br/> <pre id="md">> Blockquotes dasfsadfasdf:fa-edit: :warning: :smiley:dsafsdfsad\:fdsfdf\:f dfdf: :fa-save::fa-star: :fa-truck: **fdfasd:smiley:dsfsdfsfd** ~~fsdfds:smiley:dfsdfsdf :fa-info:~~ *dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf* ___Emphasis :fa-gear: Italic:smiley:___ __Emphasis:smiley:__ # H1 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf ## H2 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf ### H3 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf #### H4 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf ##### H5 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf ###### H6 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-star:dsfsdf [:smiley:](http://www.emoji-cheat-sheet.com/ "link + emoji") link + emoji - dafssdfsdaf:smiley:dfsdfsdf - dafssdfsdaf:smiley:dfsdfsdf - dafssdfsdaf:smiley:dfsdfsdf - dafss:fa-truck:dfsdaf:smiley:dfsdfsdf - dafssd: :fa-truck:fsdaf:smiley:dfsdfsdf :fa-star:: :fa-truck: + dafssdfsdaf:smiley:dfsdfsdf + dafss:fa-truck:dfsdaf:smiley:dfsdfsdf 1. :smiley:第一行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-save:: :fa-truck: - dafssdfsdaf:smiley:dfsdfsdf - dafss:fa-truck:dfsdaf:smiley:dfsdfsdf 2. :smiley:第二行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-star:: :fa-truck: 3. 第三行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-save:: :fa-truck: > Blockquotes > dd:smiley:引用文本(Blockquotes:smiley:)fdasfad :fa-star:: dfd :fa-truck: |:100: First Header | Second:smiley: Header:smiley: | | ------------- | ------------- | | Content:fa-truck: Cell | :smiley:Content Cell :smiley: | | Con:fa-truck:tent Cell:bangbang: | Content Cell dfsdfsdf :fa-star: :dfdf :fa-truck: | :fa-heart:fasdfsdfsfddffd:editormd-logo: :editormd-logo: :editormd-logo-4x: dfasfasdfasdf:bangbang: This is an H1 :editormd-logo-4x: ============= This :fa-save:: :fa-truck:is an H2 :100: ------------- </pre> <script src="../examples/js/jquery.min.js"></script> <script src="../lib/marked.min.js"></script> <script type="text/javascript"> $(function() { var markedRenderer = new marked.Renderer(); var markdownToC = markdownToC || []; var emojiReg = /:([\-\w]+):/g; var faIconReg = /:fa-([\w]+):/g; var editormdLogoReg = /:(editormd-logo\s?-?(\w+)?):/g; console.log("markedRenderer =>", markedRenderer); markedRenderer.emoji = function(text) { console.log("emoji.text =>", text); var matchs = text.match(emojiReg); console.log(matchs); if ( matchs) { for (var i = 0, len = matchs.length; i < len; i++) { text = text.replace(new RegExp(matchs[i]), function($1, $2){ var faMatchs = $1.match(faIconReg); //console.log("famatchs =>", faMatchs); var name = $1.replace(/:/g, ""); // http://www.emoji-cheat-sheet.com/graphics/emojis/smile.png console.log("replace =>", name, $1, $2); if (faMatchs) { for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++) { return "<i class=\"fa "+faMatchs[fa].replace(/:/g, "")+"\"></i>"; } } else { var emdlogoMathcs = $1.match(editormdLogoReg); if (emdlogoMathcs) { for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++) { return "<i class=\""+emdlogoMathcs[x].replace(/:/g, "")+"\"></i>"; } } else { return "<img src=\"http://www.emoji-cheat-sheet.com/graphics/emojis/"+name+".png\" />"; } } //return (faIconReg.test($1)) ? "<i class=\"fa "+name+"\"></i>" : (editormdLogoReg.test($1)) ? "<i class=\""+name+"\"></i>" : "<img src=\"http://www.emoji-cheat-sheet.com/graphics/emojis/"+name+".png\" />"; }); } console.log(emojiReg.exec(text)); console.log(text, emojiReg.test(text), faIconReg.test(text)); } return text; }; markedRenderer.blockquote = function (quote){ console.log("quote =>", quote); return "<blockquote>\n"+quote+"</blockquote>\n"; }; markedRenderer.tablecell = function (content,flags){ console.log(content); var type=flags.header?"th":"td"; var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">"; return tag+this.emoji(content)+"</"+type+">\n"; } markedRenderer.heading = function (text,level,raw){ return"<h"+level+' id="'+this.options.headerPrefix+raw.toLowerCase().replace(/[^\w]+/g,"-")+'">'+this.emoji(text)+"</h"+level+">\n" }; markedRenderer.listitem = function (text){ return "<li>" + this.emoji(text) + "</li>\n"; }; markedRenderer.paragraph = function(text) { console.log("paragraph =>", text, text.match(emojiReg)); return "<p>" + this.emoji(text) + "</p>\n"; }; marked.setOptions({ renderer : markedRenderer, gfm : true, tables : true, breaks : true, pedantic : false, smartLists : true, smartypants : true }); var mdsrc = $("#md").html(); var md = marked(mdsrc); //console.log(mdsrc); $("body").append(md); }); </script> </body> </html>