What you want has several steps:
Get the text entered in textarea
, and convert it to array
, where each entry will correspond to one line of text in 'textarea'.
Search the contents of the array to find, for example, a line started with ##
.
Return the result in html (convert the line started with ##
to a valid h2
tag.
Example with jQuery and Regular Expressions:
link
In this example, the tags <h1>
and <h2>
are validated and the remaining lines are converted into <p>
paragraphs.
// Assegura que o documento html está totalmente carregado
$(document).ready(function() {
// Clicando no botão executa a conversão
$('#botao-converter').click(function() {
// Obtém o conteúdo do textarea e divide-o em linhas
var arrayDeLinhas = $('#editor').val().split('\n');
var resultadoHTML = '';
// Loop para validar e converter o conteúdo para html
for (var i=0; i<arrayDeLinhas.length; i++) {
var linha = arrayDeLinhas[i];
var elementoEncontrado;
// Expressões regulares para validar as linhas
var existeH1 = linha.match(/^#\s(.*)/);
var existeH2 = linha.match(/^##\s(.*)/);
if (existeH1) { elementoEncontrado = 'h1'; }
if (existeH2) { elementoEncontrado = 'h2'; }
switch(elementoEncontrado) {
case 'h1':
resultadoHTML+= '<h1>' + linha.replace(/^#(.*)/,'') + '</h1>';
break;
case 'h2':
resultadoHTML+= '<h2>' + linha.replace(/^##(.*)/,'') + '</h2>';
break;
default:
resultadoHTML+= '<p>' + linha + '</p>';
}
}
// Mostra o resultado
$('#resultado').html(resultadoHTML);
});
});
body { font-family: monospace}
<h3>EDITOR:</h3>
<form>
<textarea id="editor" rows="8" cols="80">Texto
Texto e mais texto
Mais texto ainda
## H2 aqui
Mais texto
# H1 aqui
Texto simples
</textarea>
<br>
<button id="botao-converter" type="button">Converter para Markdown</button>
</form>
<br>
<h3>RESULTADO:</h3>
<div id="resultado">O resultado irá surgir aqui</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
):