Discussion utilisateur:ElioPrrl/Typos.js

Le contenu de la page n’est pas pris en charge dans d’autres langues.
La bibliothèque libre.

Notification ElioPrrl : Bonjour ! J’ai copié sans vergogne un certain nombre de lignes de cette page sur ma propre page typos.js. Après beaucoup d’essais-erreurs, tout a fini par fonctionner très bien, à une exception près : lorsqu’un paragraphe commence par M. Personne, par exemple, le bouton T ne considère pas ce M. comme étant un titre de civilité suivi d’un nom, mais comme un chiffre romain en grande capitale. En effet, j’obtiens chaque fois {{rom-maj|M}}. Personne. Ailleurs dans un paragraphe, j’obtiens {{M.|Personne}} comme il se doit. Existe-t-il une solution ?

Aussi, pouvez-vous m’indiquer où trouver les fonctions associées à ce que j’appelle les « signes cabalistiques » (/(\n|\-| |\{\{lié\}\})([IVXLCDM]+)([\n-\.,…\|\}\) ])/g, "$1$2$3"). Il me semble que les $1$2$3 ont un lien avec le nombre de mots pouvant suivre la barre droite, mais je n’en suis pas certaine. Pour le reste, c’est le noir total (mes recherches ont été infructueuses).

Merci de votre immense patience. --Raymonde Lanthier (d) 25 novembre 2021 à 20:10 (UTC)[répondre]

Notification Raymonde Lanthier : Ça fait un moment que je diffère cette correction de la règle pour M., je vais essayer de m’y coller sous peu alors Clin d'œil. Pour l’explication de la syntaxe des expressions rationnelles, j’ai tout appris avec ce lien et beaucoup de patience. (Et je suis bien content que vous ayez pillé sans vergogne, cela prouve que ce petit script est utile ; et une fois qu’on y a goûté, on ne peut plus s’en passer !) — ElioPrrl (d) 25 novembre 2021 à 20:32 (UTC)[répondre]
Fait  ! — ElioPrrl (d) 25 novembre 2021 à 21:11 (UTC)[répondre]
Notification ElioPrrl : Vous m’impressionnerez toujours ! Je me lance dans l’exploration du Guide demain.--Raymonde Lanthier (d) 25 novembre 2021 à 21:36 (UTC)[répondre]

Ligne 56[modifier]

Notification ElioPrrl : Bonjour ! La ligne 56 (84 sur ma page), qui se lit comme suit, « str = str.replace(/([0-9])e /g, "{{$1e| "); » (ligne 84 chez moi), ne fonctionne pas correctement. Dans un texte que je corrigeais ce matin, il y avait un « 21e Congrès », qui s’est transformé en « 2{{1e| Congrès » (espace superflue avant Congrès) après activation du bouton T. Les modèles avec « e » en exposant s’arrêtent à 10, et là encore, avec le bouton T, j’ai essayé « 10e Congrès » et obtenu le même résultat qu’avec 21e. J’aimerais que vous m’indiquiez ce qu’il faut modifier dans Typos.js pour que 21e ne soit pas changé automatiquement ou erronément. Merci. --Raymonde Lanthier (d) 30 décembre 2022 à 14:31 (UTC)[répondre]

Bonjour Notification Raymonde Lanthier : ! Ce n’est pas très élégant, mais si j’ai bien compris ce que vous me demandez, ceci devrait marcher :
str = str.replace(/(?<![0-9])([1-9])e /g, "{{$1e|"); // cas des nombres de 1 à 9
str = str.replace(/(?<![0-9])10e /g, "{{10e|"); // cas du nombre 10
str = str.replace(/(?<=[0-9])e /g, "{{e}} "); // cas des nombres supérieurs à 11
Je n’ai pas testé de mon côté, n’hésitez donc pas à revenir si un problème que je n’avais pas prévu survient. — ElioPrrl (d) 1 janvier 2023 à 20:15 (UTC)[répondre]


Notification ElioPrrl : Dans le cas des deux premiers, le e ne se met pas en exposant. Quant au troisième, je vais seulement ajouter {{lié}} après le e en exposant. --Raymonde Lanthier (d) 2 janvier 2023 à 14:20 (UTC)[répondre]

Notification Raymonde Lanthier : Je n’ai pas compris en fait si vous vouliez, pour « 2e tome », obtenir « 2{{e}}{{lié}}tome » ou « {{2e|tome}} ». La seconde possibilité me semblait être celle que vous demandiez, d’où ce que j’ai proposé. Si vous voulez la première, effectivement, la troisième ligne avec {{lié}} à la place de la dernière espace suffit. — ElioPrrl (d) 2 janvier 2023 à 14:28 (UTC)[répondre]


Notification ElioPrrl : Désolée de mon manque de clarté. La deuxième possibilité, bien sûr, et le bouton T fonctionne correctement. En fait, ça fait quelques fois que je constate que le bouton T ne donne pas les résultats attendus quand la page typo est affichée, et je crois bien que c’est ce qui est arrivé avec mes essais dans ce cas-ci. Je vais être plus vigilante.
Merci Merci ! et bonne année !--Raymonde Lanthier (d) 2 janvier 2023 à 14:49 (UTC)[répondre]
Notification Raymonde Lanthier : Ne vous excusez pas, il n’y a pas de mal ! Pour que les changements faits dans Typos.js soient pris en compte par le bouton T, il faut actualiser la page Page: après avoir enregistré les modifications faites à Typos.js. Autrement dit, dans une page Page: donnée, le bouton T applique la dernière version de Typos.js enregistrée avant l’ouverture de cette page Page:. (C’est un peu embrouillé, je le reconnais Mort de rire). Meilleurs vœux également ! — ElioPrrl (d) 2 janvier 2023 à 14:55 (UTC)[répondre]

Initiales et rom-maj[modifier]

En lien avec votre ligne 371, soit str = str.replace(/J\.\-\{\{rom-maj\|C\}\}\./g, "J.-C.");, j’aimerais obtenir le même résultat avec des initiales comportant l’un ou l’autre des chiffres romains susceptibles d’apparaître avant et/ou après le trait d’union. Exemples : M.-P. et P.-M., tout autant que M.-L. et L.-M.

J’ai fait quelques essais, tous infructueux, comme vous pourrez le constater à partir de l’historique d’aujourd’hui de ma propre page Typos — j’ai fini par tout supprimer. Idéalement, j’aimerais obtenir « {{nobr|M.-P.|Untel}} et non pas « {{rom-maj|M}}.-P. Untel ». (Je viens de constater que j’ai essayé avec le modèle {{lié}} placé avant les initiales, plutôt qu’avec le modèle {{nobr}}, mais ça ne change pas le fait que j’obtienne l’insertion de {{rom-maj}} dans le résultat.) Par avance, merci. Raymonde Lanthier (d) 12 mai 2023 à 18:00 (UTC)[répondre]

Notification ElioPrrl : J’ai oublié de vous notifier hier. --Raymonde Lanthier (d) 13 mai 2023 à 13:07 (UTC)[répondre]

Notification Raymonde Lanthier : J’ai inséré avant la règle d’application de {{rom-maj}} une nouvelle règle str = str.replace(/([A-ZÀ-Ü]\.\-[A-ZÀ-Ü]\.)\s+([A-ZÀ-ÜŒ])/g, "{{nobr|$1}}{{lié}}$2");, ce qui fait que tous les prénoms composés abrégés sont dans {{nobr}}. Le modèle {{rom-maj}} ne peut déjà plus être appliqué à l’initiale du premier prénom. Pour éviter que cela n’arrive à la seconde initiale, ou plutôt pour revenir en arrière si cela a été fait, j’ai rendu plus générale la règle que vous citez : str = str.replace(/\.\-\{\{rom-maj\|([IVXLCDM])\}\}\./g, ".-$1.");, située après la règle d’application de {{rom-maj}}. Vous retrouverez ces modifications dans l’historique. Ça a l’air de marcher, mais peut-être que cela créera des effets indésirables : il faut le vérifier à l’usage. — ElioPrrl (d) 13 mai 2023 à 13:27 (UTC)[répondre]
Notification ElioPrrl : C’est encore mieux que ce que j’espérais ! Merci Merci ! --Raymonde Lanthier (d) 13 mai 2023 à 13:34 (UTC)[répondre]