MathML et WebKit
Philippe49
Membre
Réponse partielle :
MathML peut se traiter par une feuille de style, confère le stress-test et le dernier article du W3C à ce sujet que j'ai pu trouver.
Quelques bémols qui sont quasiment des accidents :
Question 1 : Pourtant ces feuilles de style ne contiennent que des instructions banales ?
Question 2 : J'arrive à reproduire sur une WebView mais seulement en utilisant une page dans les ressources et loadRequest: . Comment faire fonctionner loadHTMLString: baseURL: , sachant que la page contient une ligne faisant référence à la feuille de style.
[code]
NSString * path=[[NSBundle mainBundle] pathForResource:@mozilla ofType:@css];
NSString * essai=[NSString stringWithString:
@<?xml version=\1.0\" encoding=\"utf-8\"?>"
"<?xml-stylesheet type=\"text/css\" href=\"mozilla.css\"?>"
....
];
webView mainFrame] loadHTMLString:essai baseURL:nil]; <br />[/code]<br /><br /><br />[EDIT] <br />Pareil avec <br /> [[webView mainFrame] loadHTMLString:essai baseURL:[NSURL URLWithString:[path stringByDeletingLastPathComponent];
[EDIT]
idem avec
NSString * resourcePath=[[NSBundle mainBundle] resourcePath];
NSURL * baseURL=[NSURL fileURLWithPath:resourcePath];
[[webView mainFrame] loadHTMLString:essai baseURL:baseURL];
MathML peut se traiter par une feuille de style, confère le stress-test et le dernier article du W3C à ce sujet que j'ai pu trouver.
Quelques bémols qui sont quasiment des accidents :
- La feuille de style utilisée dans le Lykt-Info n'est pas celle du W3C
- Celle du W3C ne marche pas sur Safari, ni Firefox, Ni Opera sur Mac
- La feuille de style utilisée dans le Lykt-Info, visible sur cette page, marche mal quand on met en place la page Web en local (en rappatriant le site)
Question 1 : Pourtant ces feuilles de style ne contiennent que des instructions banales ?
Question 2 : J'arrive à reproduire sur une WebView mais seulement en utilisant une page dans les ressources et loadRequest: . Comment faire fonctionner loadHTMLString: baseURL: , sachant que la page contient une ligne faisant référence à la feuille de style.
[code]
NSString * path=[[NSBundle mainBundle] pathForResource:@mozilla ofType:@css];
NSString * essai=[NSString stringWithString:
@<?xml version=\1.0\" encoding=\"utf-8\"?>"
"<?xml-stylesheet type=\"text/css\" href=\"mozilla.css\"?>"
....
];
webView mainFrame] loadHTMLString:essai baseURL:nil]; <br />[/code]<br /><br /><br />[EDIT] <br />Pareil avec <br /> [[webView mainFrame] loadHTMLString:essai baseURL:[NSURL URLWithString:[path stringByDeletingLastPathComponent];
[EDIT]
idem avec
NSString * resourcePath=[[NSBundle mainBundle] resourcePath];
NSURL * baseURL=[NSURL fileURLWithPath:resourcePath];
[[webView mainFrame] loadHTMLString:essai baseURL:baseURL];
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il y a une référence à image/png , qui se trouve effectivement sur le site , ou le data c'est ce qui suit ?
C'est ce qu'utilise entre autres AcidTest pour générer des morceaux de l'image du smiley.
Ici "MIMETYPE" est image/png;base64, donc les données "iVBORw0Kgo..." sont en fait l'encodage base64 des données d'une image PNG (copies ces données à partir de "iVBOR..." jusqu'à la fin de la pseudo-URL, colle-les dans un fichier, passes-le à la moulinette du décodage base64, et sauves le résultat décodé dans un fichier PNG, tu auras ton image)
Donc justement, ça permet en utilisant ça de rendre le CSS auto-suffisant, ça évite d'avoir à te trimbaler les images en plus du CSS : si tu veux utiliser cette CSS pour faire le rendu de tes formules MathML, tu n'as besoin que de ce CSS, tu n'as pas à copier le CSS d'un côté, les images qu'il utiliserait de l'autre, et t'assurer que tu as bien mis ces images dans le bon répertoire (respecter les chemins relatifs qui seraient utilisés dans le CSS), ... puisque là les images sont encapsulées dans le CSS encodées directement en dur dedans
Merci pour l'info, reçu 5/5. C'est le mot url( ..) qui me perturbait.
Am I right ?
Bon, maintenant ma question est "Est-il possible de mettre en route le serveur à partir de mon programme, i.e sans créer un fichier en dur ?" soit "Le traitement des feuilles de style css est-il prévu dans un des framework Cocoa, ou une librairie ad-hoc ?"
If anyone ...
Le tout étant bien évidemment de fournir la bonne baseURL pour qu'il puisse résoudre correctement les liens relatifs vers le CSS quand il évalue le HTML.
En local, la baseURL c'est bien le path du répertoire, traduit par fileURLWithPath: , dans lequel se trouve le fichier .css ?
Dès lors le href est-il obtenu par : <?xml-stylesheet type=\"text/css\" href="mozilla.css"?>
et sans doute par <?xml-stylesheet type=\"text/css\" href="./mozilla.css"?>
Quand à ce que je disais au post précédent au sujet du prétraitement , moi cela me semble bizarre aussi parce que on ne voit pas pourquoi cette méthode demanderait la baseURL si elle ne sait pas l'utiliser pour résoudre les liens relatifs ?
Salut,
Je pense que ça vient du fait que ton HTMLString n'a pas le bon MIME-type, il faut qu'il soit "application/xml" et pas "text/html" (je pense que c'est ça par défaut). J'ai fait comme ça et tout s'affiche bien :
J'ai donc 4 ressources :
index.mml et index.xhtml sont juste des pages tests ... J'ai exactement la même représentation que Lykt-Info tant que je ne change pas le DOCTYPE. Si je le change (en mettant MathML 2.0), la seule différence que j'ai remarqué c'est que les équations n'ont plus de numéro : (X) et l'équation (4) est plus espacée/alignée ...
Voila, je vais aller tester avec le simulateur iPhone mais je pense que ça devrait marcher aussi. Voila les 4 fichiers : http://www.mediafire.com/?nijyty3ny2w
En espérant que ce soit mieux que ce que t'obtenais .