Comment formater/rangé/embellir en JavaScript

Comment puis-je formater/rangé/embellir HTML en JavaScript? J'ai essayé de faire un rechercher/remplacer pour crochets (<, >) et la mise en retrait en conséquence. Mais bien sûr, il ne prend pas en compte lorsque le est JS ou CSS etc à l'intérieur de l'HTML.

La raison pour laquelle je veux faire c'est que j'ai fait un éditeur de contenu (CMS), qui a WYSIWYG et vues du code source. Le problème le code écrit par l'éditeur WYSIWYG est normalement une seule ligne. Donc je voudrais un code JavaScript qui pourrait le format de ce dans une forme plus lisible sur demande.

Ici ce que j'ai à ce jour:

function getIndent(level) {
var result = '',
i = level * 4;
if (level < 0) {
throw "Level is below 0";
}
while (i--) {
result += ' ';
}
return result;
}
function style_html(html) {
html = html.trim();
var result = '',
indentLevel = 0,
tokens = html.split(/</);
for (var i = 0, l = tokens.length; i < l; i++) {
var parts = tokens[i].split(/>/);
if (parts.length === 2) {
if (tokens[i][0] === '/') {
indentLevel--;
}
result += getIndent(indentLevel);
if (tokens[i][0] !== '/') {
indentLevel++;
}
if (i > 0) {
result += '<';
}
result += parts[0].trim() + ">\n";
if (parts[1].trim() !== '') {
result += getIndent(indentLevel) + parts[1].trim().replace(/\s+/g, ' ') + "\n";
}
if (parts[0].match(/^(img|hr|br)/)) {
indentLevel--;
}
} else {
result += getIndent(indentLevel) + parts[0] + "\n";
}
}
return result;
}
  • parfois, les meilleures questions/réponses sont hors sujet.
  • de la foutaise c'est sur le sujet, en fait, il avait déjà été fermé en hors sujet et puis reopend de nouveau
  • Ici ultra simple HTML formateur en javascript
  • Votre code fonctionne bien, mais encore besoin de quelques améliorations. À l'appui de plus de singleton ou d'annuler les balises. Essayez de changer la méthode match si (pièces[0].match(/^(zone|base|br|col|commande|embed|rh|img|input|link|meta|param|source)/)). Également mettre à jour: de retour de résultat.trim(); au lieu de html = html.trim();
InformationsquelleAutor Petah | 2010-10-12