8
votes

DÉFINITION DES RÈGLES HTML WHITSPACE?

Je cherche cette définition pour que mon rendu HTML soit conforme un peu mieux. À l'heure actuelle, il devine que Whitpace de garder, qui s'effondrer et quoi jeter. La norme SGML est difficile à trouver et la norme HTML ne semble pas traiter le sujet de la profondeur requise pour mes besoins.

Actuellement, mon rendu analyse du HTML dans un arbre, puis une transaction récursive passe pour positionner tous les éléments et leur contenu. J'essaie d'essayer de jeter des espaces dans la phase d'analyse, c'est-à-dire pas émettre que les espaces blouses ne font que des morceaux de texte dans certaines circonstances. Ce qui fonctionne un peu pour la majorité des cas, mais il y a une foire peu de cas de bord qui devient difficile à gérer.

(Je travaille également sur une sous-classe d'éditeur du contrôle HTML et des solutions de temps de la mise en page se révèlent être un problème un peu dans l'éditeur, de sorte que je travaille donc sur les obtenir dans l'étape d'analyse. L'information de la mise en page n'est pas Disponible jusqu'au temps de refusion, ce qui est quelque temps après avoir édité le document.)

feu loin avec liaison / flammes.


0 commentaires

4 Réponses :


10
votes

Je pense que la section 9.1 espace blanc dans la spécification HTML 4 est ce que vous recherchez.


1 commentaires

Je lis ça et ça n'avait pas le détail dont j'avais besoin. En examinant actuellement la documentation HTML 5 Parser pour voir comment il couvre les espaces autour des éléments.



2
votes

Si vous écrivez votre propre analyse HTML, je vous recommande vivement d'utiliser l'algorithme d'analyse dans la spécification HTML 5. http://www.whatwg.org/html5 Il couvre un grand nombre de caisses de bord et d'angle, et l'étrangeté du navigateur général. Les navigateurs ne suivent pas les règles SGML, mais elles sont tout agréables à faire ce que la spécification HTML 5 indique, ou l'équivalent fonctionnel de celui-ci. Plusieurs analyseurs open source sont disponibles qui implémentent l'algorithme, il devrait donc avoir tout ce dont vous avez besoin.


3 commentaires

Maintenant que j'ai eu un peu de temps à lire via les spécifications HTML5, bien les parties qui traitent de l'analyse, je ne suis pas plus proche de travailler sur lequel des personnages blancheurs finissent par être rendus et qui disparaissent.


Droit. Quel espace blanc est rendu est une question différente de celle que vous avez posée, qui était quel espace blanc peut être jeté à l'étape d'analyse. N'oubliez pas que CSS comme White-Space: Pre peut être appliqué par JavaScript après l'étape d'analyse, de sorte que l'étape d'analyse ne peut donc pas jeter d'espace blanc pouvant être soumis à une telle application.


Incidemment, un bon outil permettant de voir comment les navigateurs le font réellement, c'est d'utiliser la visionneuse Live Dom de Hixie ( logiciel.hixie.ch/utilities/js/live-dom-Viewer ). Vous verrez que lorsque vous créez un espace blanc dans la case "Mark Up to Test" "," #Text: "Les nœuds sont créés dans le DOM montrant que l'espace blanc n'est pas lancé au stade de l'analyse. Notez que les navigateurs actuels / récents ne se comportent pas exactement de la même manière, mais l'effet devrait préciser suffisamment si vous utilisez un navigateur gecko, WebKit ou Presto.



5
votes

Alors je pense que le plus proche, je vais chercher une réponse à ce sujet est ici: http://www.w3.org/tr/css2/text .html # blanc-espace-modèle


1 commentaires

C'est une version plus récente et légèrement plus utile: w3.org/ TR / CSS3-TEXT / # WHITE-SPACE-TRAITEMENT



3
votes

Je peux recommander cette explication de l'analyse de WhitSpace:

https://developer.mozilla.org/en -Us / Docs / Web / API / Document_Object_model / WhitSpace


0 commentaires