Comment puis-je trouver le chemin d'accès complet à une police à partir de son nom d'affichage sur un Mac?

J'utilise l'API JavaScript de Photoshop pour trouver les polices dans un PSD donné.

Étant donné un nom de police renvoyé par l'API, je souhaite trouver le fichier de police physique réel correspondant au nom de la police sur le disque.

Tout cela se passe dans un programme python fonctionnant sous OSX donc je suppose que je suis à la recherche de l'un des suivants:

  • Quelques JavaScript Photoshop
  • Une fonction Python
  • Une API OSX que je peux appeler depuis python
0
ajouté édité
Vues: 2
D'accord. Vote pour fermer comme trop localisé.
ajouté l'auteur Anonymous User, source
Je vote pour ne pas fermer. Beaucoup de personnes nouvelles à WP peuvent rencontrer des erreurs 404 dans WP-Admin, et finalement il s'agit d'un bug dans un plugin ou un thème, ou leur effet sur une règle de réécriture (soit stockée dans la base de données dans wp-options ou dans le. fichier htaccess). Ce que nous devrions plutôt faire, c'est de fournir des étapes de dépannage générales que l'on peut prendre pour identifier le problème plus rapidement.
ajouté l'auteur Chris Jester-Young, source
Je suis d'accord, donc je vais voter pour fermer aussi.
ajouté l'auteur Michael Haren, source
Je suis d'accord, donc je vais voter pour fermer aussi.
ajouté l'auteur Michael Haren, source
Eh bien, même cela tend à être une question de support, il a assez d'informations pour au moins suggérer des moyens de résoudre le problème rapidement.
ajouté l'auteur steve_mtl, source
Ne pas être un PITA mais ce est vraiment un problème de support et pas quelque chose que nous allions couvrir ici; Je vais voter pour fermer. Demandez plutôt à http://wordpress.org/support . Si vous faites des tests et affinez votre question pour qu'elle ne s'applique pas uniquement à votre situation, elle pourrait poser une question acceptable ici. Encore une fois, désolé d'être de cette façon, m
ajouté l'auteur MikeSchinkel, source

7 Réponses

La seule façon de déboguer ceci est de désactiver un plugin à la fois, en essayant chaque fois de reproduire le problème avant de désactiver un autre plugin. Commencez avec les plugins qui ont quelque chose à voir avec l'administration de WP, puis descendez vers les plugins à thème, les widgets et autres.

Inspectez la page "Not Found" qui vous est le mieux servi (naviguez avec Opera et ouvrez le panneau d'informations qui vous montrera les en-têtes, naviguez avec Firefox et Firebug avec le panneau "Net" activé) et effectuez une recherche parmi tous les vos plugins pour voir s'ils peuvent le servir directement. Si ce n'est pas le cas, jetez un coup d'œil au journal du serveur Web pour savoir quelle ressource exacte il ne peut pas servir; un plugin peut être en train de faire un peu de réécriture ou de réécriture, donc ce n'est pas nécessairement l'URL que vous voyez dans votre navigateur qui cause le 404.

4
ajouté
À 70 plugins, il serait vraiment intéressant de trouver un moyen de le faire très rapidement sans devoir désactiver et tester manuellement chacun d'entre eux, comme avec un fichier de test de plugin.
ajouté l'auteur Chris Jester-Young, source
Je vois que vous avez modifié votre réponse originale avec un bon conseil pour trouver la réponse plus rapidement.
ajouté l'auteur Chris Jester-Young, source
Merci, asbjornu. Je chercherai à le faire après mon retour de vacances avec ma famille.
ajouté l'auteur Ryan Olson, source
J'ai regardé à travers les logs du serveur et je n'ai rien trouvé de plus spécifique que "Premature end of script header". Je suppose que ça ne pourrait pas être aussi simple ...
ajouté l'auteur Ryan Olson, source

C'est juste une idée approximative: Si vous obtenez une erreur "réelle" 404 (avec des en-têtes), alors vous pouvez rechercher dans vos plugins et chercher le Fonction PHP en-tête() et le numéro 404. Cela pourrait réduire le nombre de plugins de 70 à quelques-uns. Ensuite, vous avez seulement besoin de vérifier pour ceux-ci.

Cela peut être facilement fait avec un IDE comme Eclipse PDT qui permet de rechercher un appel de fonction PHP spécifique.

À côté de cela, mais sans aucune garantie de succès, vous devez écrire un plugin qui se connecte au paramètre d'en-tête, puis vous donne la trace du code qui définit en fait un potentiel 404 (backtrace). Cela ne fonctionnerait que si le plugin utilise la fonction API WordPress. La première méthode pour rechercher la fonction PHP fonctionnera indépendamment de l'API WP.

3
ajouté
Cela semble prometteur. Quelque chose d'autre à regarder après mes vacances. :)
ajouté l'auteur Ryan Olson, source
J'ai réussi à faire quelques recherches alors que j'étais encore en dehors de la ville, et j'ai seulement trouvé que mon plugin de sauvegarde semble appeler une sortie 404. Firebug montre que c'est vraiment un 404, cependant. Quelques progrès ... Cependant, j'ai maintenant du mal à déclencher le problème, alors je suppose que je vais faire une pause. Je déteste les bugs intermittents!
ajouté l'auteur Ryan Olson, source

Plus d'informations nécessaires:

1) Pourquoi tant de plugins?

2) Quel système d'exploitation votre fournisseur d'hébergement exécute-t-il?

3) Quel serveur web?

4) Avez-vous accès aux journaux du serveur httpd, en particulier aux journaux d'erreurs?

5) Que disent les journaux d'erreurs dans les délais entourant ces problèmes?

(Maintenant, à vrai dire, si nous généralisons pour que "J6P moyen en cours d'exécution WordPress pourrait avoir cette question exacte, nous pourrions commencer par diriger le J6P pour répondre au moins aux 5 questions ci-dessus ...)

2
ajouté
Maintenant que vous le mentionnez, je vois aussi ces erreurs aléatoires sur mes sites DH. Cela se produit particulièrement lorsque j'essaie d'effectuer une mise à niveau réseau dans mes installations MS et que j'exécute l'importateur. Étrange.
ajouté l'auteur Bernard, source
J'ai tous ces plugins parce que j'utilise les fonctions qu'ils servent; pourquoi d'autre? Les journaux d'erreurs ne disent pas grand chose. Je suis sur DreamHost, donc je pense que le serveur exécute une construction Debian personnalisée avec Apache httpd.
ajouté l'auteur Ryan Olson, source

open up a terminal (Applications->Utilities->Terminal) and type this in:

locate InsertFontHere

Cela va cracher chaque fichier qui a le nom que vous voulez.

Attention: il peut y avoir beaucoup à parcourir.

0
ajouté

Il doit y avoir une méthode dans Cocoa pour obtenir une liste de polices, alors vous devrez utiliser les liaisons PyObjC pour l'appeler.

Selon ce dont vous avez besoin, vous pourriez probablement utiliser quelque chose comme ce qui suit.

import os
def get_font_list():
    fonts = []
    for font_path in ["/Library/Fonts", os.path.expanduser("~/Library/Fonts")]:
        if os.path.isdir(font_path):
            fonts.extend(
                [os.path.join(font_path, cur_font) 
                 for cur_font in os.listdir(font_path)
                ]
            )
    return fonts
0
ajouté

Malheureusement, la seule API qui n'est pas obsolète se trouve dans la structure ApplicationServices, qui ne possède pas de fichier de support de pont et n'est donc pas disponible dans le pont. Si vous souhaitez utiliser ctypes, vous pouvez utiliser ATSFontGetFileReference après avoir recherché ATSFontRef.

Cocoa n'a aucun support natif, au moins à partir de 10.5, pour obtenir l'emplacement d'une police.

0
ajouté

Je n'ai pas été capable de trouver quoi que ce soit qui le fasse directement. Je pense que vous devrez itérer à travers les différents dossiers de polices sur le système: / System / Bibliothèque / Fonts , / Library / Fonts , et il peut y avoir probablement un utilisateur -level aussi bien ~ / Library / Fonts .

0
ajouté