<!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> 
 |