2014-09-05 2 views
0

Я работаю над скриптом разметки jQuery. Он произносит слова, обернутые в двойных звездочками жирным шрифтом (так же, как редактор здесьУсиление кода уценки jQuery

Кроме того, если начать предложение с > символом:..

> Hello World. 

Он оборачивает предложение в BLOCKQUOTE Это прекрасно работает, увидеть его в действии здесь: http://jsfiddle.net/pezbdt2h/

Теперь я хочу, чтобы улучшить эту часть кода, так что если предложение начинается с P тегом и имеет большое чем символ в начале, то он должен обернуть предложение в blockquote также:

<p>> Hello World. 

Вот код:

function markdown(markdownableOrg) { 

    var bold = /\*\*(\S(.*?\S)?)\*\*/gm; 

var dataArray=markdownableOrg.split("\n"); 
    var data=[]; 
for(var i=0;i<dataArray.length;i++) 
{ 
    var markdownable =dataArray[i]; 
     markdownable = markdownable.replace(bold, '<span style="font-weight:bold">$1</span>'); 
    if (markdownable.indexOf("&gt;") == 0) { 
     markdownable = markdownable.replace("&gt;", "<blockquote>"); 
     markdownable += "</blockquote>"; 
    } 
    data.push(markdownable) 
} 

    return data.join("\n"); 
} 

Как улучшить код, чтобы он обнаруживает <p>>, а также и заворачивает его в BLOCKQUOTE? Я предполагаю, что тип кода AND/OR внутри кода.

+2

Большой вопрос, почему вы заново изобретать колесо? т. е. как ваше колесо будет другим/лучше? – amphetamachine

+0

@amphetamachine Вы спрашиваете, почему я не делаю эту серверную сторону? Это для моего личного проекта и не имеет отношения к заданному вопросу :) –

+1

Я спрашиваю, почему вы изобретаете [это колесо] (https://github.com/evilstreak/markdown-js). [Или этот] (https://code.google.com/p/pagedown/wiki/PageDown). – amphetamachine

ответ

0

Вызов той же функции для innerHTML для каждого элемента DOM?

jQuery('.revision_content *').each(function() { 
    var markdownable = jQuery(this).html(), 
     revision_content = markdown(markdownable); 

    jQuery(this).html(revision_content); 
}); 

jsFiddle