You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
7.2 KiB
138 lines
7.2 KiB
<!DOCTYPE html>
|
|
<html lang="zh">
|
|
<head>
|
|
<title>Marked heading link Test</title>
|
|
<meta charset="UTF-8">
|
|
<meta name="description" content="" />
|
|
<meta name="keywords" content="" />
|
|
<link rel="stylesheet" href="../examples/css/style.css" />
|
|
</head>
|
|
<body>
|
|
<script src="../examples/js/jquery.min.js"></script>
|
|
<script src="../lib/marked.min.js"></script>
|
|
<script type="text/javascript">
|
|
|
|
var linkReg = /\s*\<a\s*href\=\"(.*)\"\s*([^\>]*)\>(.*)\<\/a\>\s*/;
|
|
var linkTextReg = /\s*\<a\s*([^\>]+)\>([^\>]*)\<\/a\>\s*/g;
|
|
|
|
var testLink = "<a href=\"http://daringfireball.net/projects/markdown/basics\" title=\"Markdown Basics\">Markdown Basics</a> ";
|
|
var testLink2 = "<a href=\"http://daringfireball.net/projects/markdown/basics\" title=\"Xdfsdf\">Xdfsdf</a> ";
|
|
var testLink3 = "<a href=\"\" title=\"\"></a> ";
|
|
var texts = (testLink + testLink2 + testLink3).split(/\<a\s*([^\>]+)\>([^\>]*)\<\/a\>/);
|
|
|
|
console.log(texts);
|
|
|
|
for (var i = 0, len = texts.length; i < len; i++)
|
|
{
|
|
if((i+1) % 3 == 0) console.log(texts[i]);
|
|
}
|
|
|
|
(testLink + testLink2).replace(linkTextReg, function(){
|
|
//console.log($1, $2);
|
|
//console.log("linkText =>", $3);
|
|
console.log(arguments);
|
|
});
|
|
|
|
testLink.replace(linkTextReg, function($1, $2, $3){
|
|
console.log($1, $2, $3);
|
|
});
|
|
|
|
console.log(linkReg.test(" <a name=\"dddd\" class=\"link\" style=\"color:red;\">Markdown Basics</a> "));
|
|
|
|
console.log(linkReg.test("<a name=\"dddd\" href=\"http://daringfireball.com/projects/markdown/basics\" class=\"link\" style=\"color:red;\">Markdown Basics</a> "));
|
|
|
|
console.log(linkReg.test("<a href=\"http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526\" title=\"dddd\" class=\"link\" style=\"color:red;\">Markdown Basics</a> "));
|
|
|
|
console.log(linkReg.test("<a href=\"http://daringfireball.net/projects/markdown/basics\" title=\"dddd\"><span>Markdown Basics</span></a> "));
|
|
|
|
console.log(linkReg.test("<a href=\"http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526\" title=\"dddd\"><span class=\"active\">Markdown Basics</span></a> "));
|
|
console.log(linkReg.test("<a href=\"http://www.fdasfasdfsdaf.com/projects/markdown/basics\" title=\"dddd\"><a href=\"#ddd\" class=\"active\">Markdown Basics</a></a> "));
|
|
console.log(linkReg.test("afdsfasfsadf<a href=\"http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526\" title=\"dddd\"><a href=\"#ddd\" class=\"active\">Markdown Basics</a></a> fdasfasdfadsfsfd <a href=\"http://daringfireball.net/projects/markdown/basics\" title=\"dddd\"><span>Markdown Basics</span></a>"));
|
|
|
|
$(function() {
|
|
var markedRenderer = new marked.Renderer();
|
|
var markdownToC = markdownToC || [];
|
|
|
|
markedRenderer.heading = function(text, level, raw) {
|
|
|
|
var linkText = text;
|
|
var hasLinkReg = /\s*\<a\s*href\=\"(.*)\"\s*([^\>]*)\>(.*)\<\/a\>\s*/;
|
|
var getLinkTextReg = /\s*\<a\s*([^\>]+)\>([^\>]*)\<\/a\>\s*/g;
|
|
|
|
if (hasLinkReg) {
|
|
var tempText = [];
|
|
text = text.split(/\<a\s*([^\>]+)\>([^\>]*)\<\/a\>/);
|
|
|
|
console.log(text);
|
|
|
|
for (var i = 0, len = text.length; i < len; i++)
|
|
{
|
|
if((i+1) % 3 == 0) tempText.push(text[i]);
|
|
}
|
|
|
|
text = tempText.join(" ");
|
|
}
|
|
|
|
var escapedText = text.toLowerCase().replace(/[^\w]+/g, "-");
|
|
var toc = {
|
|
text : text,
|
|
level : level,
|
|
slug : escapedText
|
|
};
|
|
|
|
console.log("text =>", text);
|
|
|
|
var isChinese = /^[\u4e00-\u9fa5]+$/.test(text);
|
|
var id = (isChinese) ? escape(text).replace(/\%/g, "") : text.toLowerCase().replace(/[^\w]+/g, "-");
|
|
|
|
markdownToC.push(toc);
|
|
|
|
console.log("toc =>", toc);
|
|
|
|
var headingHTML = "<h" + level + " id=\"h"+ level + "-" + this.options.headerPrefix + id +"\">";
|
|
|
|
/*return "<h" + level + " id=\"h"+ level + "-" + this.options.headerPrefix + id +"\">" +
|
|
"<a href=\"#" + text + "\" name=\"" + text + "\" class=\"anchor\"></a>" +
|
|
"<span class=\"header-link\"></span>" + text + "</h" + level + ">";*/
|
|
|
|
var anchor = "<a name=\"" + text + "\" class=\"anchor\"></a>";
|
|
|
|
headingHTML += anchor;
|
|
|
|
headingHTML += "<span class=\"header-link\"></span>";
|
|
|
|
headingHTML += (hasLinkReg) ? linkText : text;
|
|
|
|
headingHTML += "</h" + level + ">";
|
|
|
|
return headingHTML;
|
|
|
|
};
|
|
|
|
marked.setOptions({
|
|
renderer : markedRenderer,
|
|
gfm : true,
|
|
tables : true,
|
|
breaks : true,
|
|
pedantic : false,
|
|
smartLists : true,
|
|
smartypants : true
|
|
});
|
|
|
|
var md = marked("## [Markdown Basics](http://daringfireball.net/projects/markdown/basics \"Markdown Basics\")");
|
|
console.log(md);
|
|
|
|
var md2 = marked("## fdasfsd [Markdown Basics](http://daringfireball.net/projects/markdown/basics \"Markdown Basics\") xxx [Editor.md](http://daringfireball.net/projects/markdown/basics \"Editor.md\") fadsfasdfasdf");
|
|
console.log(md2);
|
|
|
|
var md3 = marked("### fdasfsd中文链接 [中文链接](http://daringfireball.net/projects/markdown/basics \"中文链接\") xxx 中文链接 [Editor.md 在线Markdown编辑器](http://daringfireball.net/projects/markdown/basics \"Editor.md 在线Markdown编辑器\") fadsfasdfasdf中文链接");
|
|
console.log(md3);
|
|
|
|
var md4 = marked("#### fdasfsd [Markdown Basics](http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526 \"Markdown Basics\") xxx [Editor.md](http://www.ipandao.com/#xxxxx \"Editor.md\") fadsfasdfasdf");
|
|
console.log(md4);
|
|
|
|
$("body").append(md).append(md2).append(md3).append(md4);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |