• # hash

    Posté par . En réponse à l’entrée du suivi Échappement du markdown. Évalué à 4 (+0/-0). Dernière modification le 01 février 2023 à 12:42.

    La donnée "pseudoaléatoire" est un hash qui vient a priori de la conversion Markdown->HTML de linuxfr.

    Dans le repository "html-pipeline-linuxfr", fichier lib/html/pipeline/svgtex.rb, le "code" est remplacé par un hash SHA1, qui est en principe remplacé par le code après traitement de mathjax. J'imagine qu'on est ici dans un cas particulier quelconque qui fait que le remplacement ne se fait pas.

    À vue de nez et sans connaître le Ruby plus que ça, je dirais que un 0円 dans la chaîne de remplacement dans le code ci-dessous (les gsub!) est remplacé par ce qui est capturé par la regex. C'est un comportement classique dans les autres langages et ça expliquerait le "bug" vu que ce qui est capturé, ben c'est le hash.

     def reinsert_code!
     @inline.each do |id, code|
     @text.gsub!(id) { "`#{code}`" }
     end
     @codemap.each do |id, spec|
     @text.gsub!(id) { "```#{spec[:lang]}\n#{spec[:code]}\n```" }
     end
     end