Zaawansowana funkcja w JS, pomoc w debugowaniu.

0

Witajcie.

Na wstępie zaznaczę że nie jestem programistą JS. Potrzebuje spreparować kawałek kodu z innej aplikacji. Funkcja "rodzic" służy do usunięcia niechcianych zmiennych / komentarzy wygenerowanych przez edytor mosaico.io

var l = $("#mosaico_iframe").contents().find("#main-wysiwyg-area").html();
var t = "<!DOCTYPE html>";

var n = (var l = function(e) {
    return e.replace(/<replacedcc[^>]* condition="([^"]*)"[^>]*>([\s\S]*?)<\/replacedcc>/g, function(e, o, t) {
        var l = "\x3c!--[if " + o.replace(/&amp;/, "&") + "]>";
        return l += t.replace(/<!-- cc:bc:([A-Za-z:]*) -->(<\/cc>)?<!-- cc:ac:\1 -->/g, "</$1>").replace(/><\/cc><!-- cc:sc -->/g, "/>").replace(/<!-- cc:bo:([A-Za-z:]*) --><cc/g, "<$1").replace(/^.*<!-- cc:start -->/, "").replace(/<!-- cc:end -->.*$/, ""), l += "<![endif]--\x3e"
    })
}(l = (l = (l = (l = (l = (l = (l = (l = (l = (l = (l = l.replace(/<script ([^>]* )?type="text\/html"[^>]*>[\s\S]*?<\/script>/gm, "")).replace(/<!-- ko ((?!--).)*? -->/g, "")).replace(/<!-- \/ko -->/g, "")).replace(/ data-bind="[^"]*"/gm, "")).replace(/ data-mce-(href|src|style)="[^"]*"/gm, "")).replace(/ style="[^"]*"([^>]*) replaced(style="[^"]*")/gm, "$1 $2")).replace(/ replaced(style="[^"]*")([^>]*) style="[^"]*"/gm, " $1$2")).replace(/ replaced(style="[^"]*")/gm, " $1")).replace(/ http-equiv="[^"]*"([^>]*) replaced(http-equiv="[^"]*")/gm, "$1 $2")).replace(/ replaced(http-equiv="[^"]*")([^>]*) http-equiv="[^"]*"/gm, " $1$2")).replace(/ replaced(http-equiv="[^"]*")/gm, " $1"))).match(/ data-[^ =]+(="[^"]+")? /) || l.match(/ replaced([^= ]*=)/);

console.log(n);

Wygląda na to że powyższy kod się zapętla... czy któryś z bardziej doświadczonych progrmiastów JS dałby rade wskazać na przyczynę? w załączniku zamieszczam przykładowy kod który chciałbym "wyczyścić".

Z góry dziękuję za pomoc.

0

Tak nieczytelnego kawałka kodu już dawno nie widziałem. Chciałbym Ci pomóc, ale od 3-ciej linijki widzę tylko 'bad practice', 'bad practice', 'bad practice'..... Jeśli Ty nie znasz JS (a nawet jak ktoś zna nieźle to wgryzanie się w to jest dość karkołomne) to może da si znaleźć jakąś bibliotekę, która spełnia Twoje zapotrzebowanie?

0

Tak, cały kod na którym pracuje wydawał mi się nie do wgryzienia... na szczęście wynegocjowałem jeszcze jeden dzień roboczy na ten task i będzie dobrze :)

Problem dotyczy edytora mosaico.io, w poniższy sposób dostałem się do funkcji która rzeczywiście spełnia swoje zadanie:

Uruchomienie mosaico.io:

plugins = [function(vm) {window.viewModel = vm;}];
var ok = Mosaico.init({
  imgProcessorBackend: 'img',
  emailProcessorBackend: 'dl/',
  titleToken: "MOSAICO Responsive Email Designer",
  fileuploadConfig: {
    url: 'uploads/',
    // messages??
  }
}, plugins);

I później już w moim custom code mam wszystko czego potrzebuje:

console.log(viewModel);
console.log(viewModel.exportHTML());

1 użytkowników online, w tym zalogowanych: 0, gości: 1