Qual è il metodo migliore per ignorare il BBCode tra i tag del codice in un parser BBCode a post completo?

0

Per chiarire il titolo un po 'di più, questo è per un plugin per il mio forum.

Sto facendo questo:

div.html( parser( div.html() ) )

Quando invio la stringa html al parser, ovviamente ottengo qualcosa del tipo:

"[BBC][/BBC]\n<code>[BBC][/BBC]</code>"

Qual è il miglior metodo che potrei usare per prevenire l'analisi del tag BBC all'interno del codice?

    
posta Tcll 10.10.2014 - 19:52
fonte

1 risposta

2

Una soluzione alternativa sarebbe salvare ogni blocco di codice prima che il plug-in analizzi il post, quindi ripristinare i blocchi in seguito.

EDIT: Quindi ho cambiato le cose e sto lavorando su un metodo leggermente più efficiente piuttosto che sulla sostituzione del testo (menzionato nell'OP), che sarà comunque considerato qui.

Ecco cosa sto usando ora:

function parse( node ) {

    // backup code blocks
    var codes = []; node.find('code').each(function() { codes.push($(this).html()); });

    // Do whatever you need to here

    // restore the code blocks
    var i=0; node.find('code').each(function() { $(this).html(codes[i]); i = i+1; });

};

^ applica direttamente le modifiche all'elemento
Per il vecchio metodo menzionato nell'OP:

function parse( post ) {
    var node = $('<div>'+post+'</div>');

    // backup the code blocks
    var codes = []; node.find('code').each(function() { codes.push($(this).html()); });

    post = ''; // <-- Do whatever you need to here

    node.html( post ); // update the node

    // restore the code blocks
    var i=0; node.find('code').each(function() { $(this).html(codes[i]); i = i+1; });

    return node.html();
};


Non consiglio questo metodo, è solo una soluzione alternativa finché non sono in grado di ignorare del tutto i blocchi di codice.

    
risposta data 10.10.2014 - 21:17
fonte

Leggi altre domande sui tag