forked from jasder/forgeplus
231 lines
9.9 KiB
HTML
231 lines
9.9 KiB
HTML
<!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> |