Utente:Alex brollo/parseTemplate.js

Da Wikisource.

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
  • Opera: premi Ctrl-F5.
/*

function parseTemplate(template, testo) {
	function cod(testo) {
		var l = produciLista(testo, "{"+"{", "}}", 1, "{{");
		for (var i = 0; i < l.length; i += 1) {
			testo = testo.replace(l[i], l[i].replace(/\|/g, "__!__"));
		}
		l = produciLista(testo, "[[", "]]", 1, "[[");
		for (var i = 0; i < l.length; i += 1) {
			testo = testo.replace(l[i], l[i].replace(/\|/g, "__!__"));
	}
	return testo;
	}
	function decod(testo) {
		testo = testo.replace(/__!__/g, "|");
		return testo;
	}
	
	if (testo == undefined) testo = leggiBox();
        var cap=template.substring(0,1).toLocaleUpperCase()+template.substring(1);
        testo=testo.replace("{" + "{"+cap, "{" + "{"+template);
	var t = find_stringa(testo, "{" + "{" + template, "}}", 1, "{{");
	var l = [] // lista delle keys
	var t = "0=" + t.substring(2, t.length - 2) // nome del template in parametro "0"
	l.push["0"]
	var ts = {}
	var n = 1;
	t = cod(t);
	t = t.split("|");

	// element for element
	for (i = 0; i < t.length; i += 1) {
		// case param is positional
		if (t[i].indexOf("=") == -1) {
			t[i] = n + "=" + t[i];
			n = n + 1;
		}
		var els = [];
		els[0] = t[i].substring(0, t[i].indexOf("=")).trim();
		els[1] = t[i].substring(t[i].indexOf("=") + 1).trim();
		if (els[1][els[1].length - 1] == "\n") els[1] = els[1].substring(0, els[1].length - 1);

		ts[els[0]] = decod(els[1]);
		l.push(els[0]);
	}

	return [ts, l];
}



function templateObj(nomeTemplate) {
	data = parseTemplate(nomeTemplate);
	this.keys = data[1];
	this.dict = data[0];
}

function rewriteTemplate(x) {
	var testo = "";
	$.each(x[1], function (indice, valore) {
		if (valore != "0") testo += " | " + valore + " = " + x[0][valore] + "\n";
	});
	testo = "{{" + x[0]["0"] + "\n" + testo + "}}\n";
	testo = testo.replace(/\n\s\|\s\d*\s=\s/g, "\n | ");
	return testo
}
*/