Posté(e) le 9 octobre 200618 a Surement à base de trucs genre lex et/ou yacc Un peu comme un compilo donc... mais bon en fait j'dis ça mais j'en sais rien
Posté(e) le 9 octobre 200618 a A mon avis, pas tout à fait comme un compilo, pour la bonne raison que les pages web trouvées aux quatre coins du Net ont une fâcheuse tendance à ne pas respecter la syntaxe HTML telle que décrite dans la norme (balises mal fermées, mal imbriquées, mots-clés en majuscules, etc). Très difficile de définir un automate à états finis dans ces conditions...
Posté(e) le 9 octobre 200618 a Il n'y a pas tant de lex/yacc que ça : find . -name '*_yy.c' ./security/nss/cmd/modutil/lex.Pk11Install_yy.c find . -name '*.l' ./security/nss/cmd/crlutil/crlgen_lex_orig.l ./security/nss/cmd/modutil/installparse.l Par contre il y a une masse de C/C++ (ce qui est prévisible). find . -name '*.c' | wc -l 1588 find . -name '*.cpp' | wc -l 4563 find . -name '*.h' | wc -l 4799 Et un peu de perl/python et d'assembleur find . -name '*.pl' | wc -l 197 find . -name '*.py' | wc -l 27 find . -name '*.s' | wc -l 83 Pour le reste, c'est des Makefiles et de la doc principalement.
Posté(e) le 10 octobre 200618 a J'ai trouvé ça en récupérant les sources et en comptant. Et oui, il doit y avoir un parser pour compter entre les <truc> et </truc> et appliqué l'effet désiré. Mais bon comme c'est vachement permissif, il y a tout un tas de subtilité en plus (exemple : <tr><td></tr>, manque un </td>, mais heureusement le browser s'en sort).
Posté(e) le 10 octobre 200618 a je suppose (a tort ? ) qu'il ont un algorythme (je sais pas si cela s'apelle comme ca) qui fait : si <br> mettre en gras jusqu'à </br> Si c'est comme cela que les navigateurs font j'aimerais voir l'algorythme sinon je voudrais savoir comment il font merci en esperant avoir ete plus clair Ouais, ils font comme ca... Mais comme le dit theo, faut prendre en compte le code des dév IE-only tout pourri! Donc ca complique énormément je pense... Le meilleur moyen de voir à quoi ca ressemble... c'est de zyeuter les sources! Et justement le meilleur (pub INside ) navigateur Web publie ses sources, elle est pas belle la vie?
Posté(e) le 10 octobre 200618 a Oui enfin je parlais surtout des erreur de codage comme des fin de balises oubliés, des capitales ou des minuscules sans distinction, des espaces n'importe où, des caractères là où il n'en faut pas. Mais c'est vrai que mozilla a rajouté *en plus* un dirty mode pour interpréter les pages IE sans que ce soit trop moche...
Posté(e) le 10 octobre 200618 a J'ai dut mal m'exprime: Je voudrais savoir comment les navigateurs font pour transformer le code en page je suppose (a tort ? ) qu'il ont un algorythme (je sais pas si cela s'apelle comme ca) qui fait : si <br> mettre en gras jusqu'à </br> Si c'est comme cela que les navigateurs font j'aimerais voir l'algorythme sinon je voudrais savoir comment il font merci en esperant avoir ete plus clair Ben comme tout logiciel alors... Pour afficher des trucs il se sert de l'api de l'os... Win32 pour windows par exemple.... ou les MFC (qui je pense, utilisent win32 donc bon). En clair avec des lignes, des points, des polices, des couleurs, etc.... ben ouais tu croyais quoi ? Après c'est un "gros logiciel" quand même, donc du code doit y'en avoir un sacré paquet... cf le wc de theo
Posté(e) le 11 octobre 200618 a si <br> mettre en gras jusqu'à </br> Hum. Les <br> qui mettent en gras, ça doit être dans IE
Posté(e) le 12 octobre 200618 a si <br> mettre en gras jusqu'à </br> Hum. Les <br> qui mettent en gras, ça doit être dans IE
Posté(e) le 12 octobre 200618 a cf le wc de theo Dis que mes réponses sont à chier pendant que tu y est... Hum. Les <br> qui mettent en gras, ça doit être dans IE
Posté(e) le 12 octobre 200618 a Je le savais deja pas la peine de faire un message inutile pour ca Mais bon c'est pas grave Je vais voir dans les sources si je trouve le parser ! si qqn c'est ou il est merci de me faire signe Après on peut pas deviner non plus C'est qu'on en croise des vertes et des pas mures des fois... (cf en dessous de ton topic : "Bonjour, je veux faire un OS" ... ) Sinon la logique de "parsage" doit pas être compliquée, en clair c'est reconstituer une page valide en essayant d'interpréter au mieux les erreurs de syntaxe. Ensuite pour afficher les pages la logique est également toute bête je pense : Une fois le code parsé on a un arbre. Reste plus qu'à le parcourir et à faire du node->display()... Pour te faire une idée de la hierarchie des classes, je pense que c'est pile poil DOM. Ensuite ya javascript, qui une fois parsé modifie surement l'arbre puis refresh() de la page. Bien sur le code derrière tout ça doit être bien bourrin... bon courage Hum. Les <br> qui mettent en gras, ça doit être dans IE Modifié le 12 octobre 200618 a par astero-H
Posté(e) le 12 octobre 200618 a le parser n'a strictement rien à voir avec le moteur de rendu. Quand tu as parsé ta page, tu dispose d'un arbre normalement pas trop mal foutu. à partir de là, tu le parcours avec un certaine heuristique bien choisie (tu peux essayer profondeur d'abord, ça devrait pas trop mal marcher), et tu affiches le contenu en respectant les attribus (tu tombe sur un <p>, ben tu créé une nouvelle zone de texte en dessous de l'élément précédent, pour un <img> tu colle un nouvel icone, etc, etc...)
Posté(e) le 13 octobre 200618 a En python : http://diveintopython.adrahon.org/html_processing/index.html
Posté(e) le 13 octobre 200618 a tu affiches le contenu en respectant les attribus (tu tombe sur un <p>, ben tu créé une nouvelle zone de texte en dessous de l'élément précédent, pour un <img> tu colle un nouvel icone, etc, etc...) Voila c'est ca que je cherche dans les sources En vain Je dois mal chercher aïe, y a pas beaucoup de moteur de rendu html... essaye les sources de khtml, c'est peut-être le moins chiant
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.