Nous avons réussi à migrer de flarum.amybo.org vers discourse forum.amybo.org, mais le forum est maintenant truffé de problèmes de mise en forme. Par exemple :
@\"Gerrit\"#p174 J'aime l'idée d'un liquide à base d'eau (comme celui de Rabaey), j'ai donc consulté les ingrédients de [Nutrisorb Trace Minerals](https://www.biocare.co.uk/nutrisorbr-liquid-trace-minerals-15ml) :
1. Eau purifiée,
2. Borate de sodium,
3. Conservateur (acide citrique),
<r>
<p>
<POSTMENTION discussionid="25" displayname="Gerrit" id="174" number="8">@\"Gerrit\"#p174</POSTMENTION> I like the idea of a water based liquid (just like Rabaey's) so I checked out the <URL url="https://www.biocare.co.uk/nutrisorbr-liquid-trace-minerals-15ml"><s>[</s>Nutrisorb Trace Minerals](https://www.biocare.co.uk/nutrisorbr-liquid-trace-minerals-15ml)<s></s></URL> ingredients:
</p>
<LIST type="decimal">
<LI><s>1. </s>Purified Water, </LI>
<LI><s>2. </s>Sodium Borate, </LI>
<LI><s>3. </s>Preservative (Citric Acid), </LI>
</LIST>
Existe-t-il un moyen recommandé pour corriger cela ?
Ce serait formidable si cela pouvait être automatisé sur l’ensemble du forum (sans afficher chaque publication comme modifiée), mais si ce n’est pas le cas, une correction semi-automatisée que nous pourrions appliquer publication par publication serait préférable à la suppression manuelle de chaque balise HTML pour revenir au markdown.
Le moment de les corriger était lors de l’importation. En tant que personne qui effectue de nombreuses migrations, le lancement d’un forum avec un formatage bâclé comme celui-ci est l’une de mes plus grandes préoccupations. Il aurait été assez facile de corriger le script d’importation, et beaucoup plus difficile de corriger a posteriori maintenant que vous avez lancé. Cela aurait pris peut-être une heure ou deux à l’époque, et maintenant cela représente 2 à 5 fois plus de travail.
Oui, on pourrait écrire un script qui nettoierait les choses sur le forum en direct et soit (effrayant) ne maintiendrait pas les modifications (donc il n’y aurait pas de modification, et pas de notifications), soit effectuerait la modification et lui dirait de ne pas remonter/notifier. Je suis à peu près sûr de l’avoir déjà fait. Vous feriez quelque chose comme :
fixes = Post.where("raw like '%quelque chose de cassé%'")
fixes.each do |p|
new_raw = p.raw.gsub!(quelque chose)
PostRevisor.new(p).revise!({raw: new_raw, edit_reason: 'réparateur de publication !'}, {bypass_bump: true)
end
Je pense que vous pouvez utiliser la commande posts:remap de Rake (voir Replace a string in all posts pour y parvenir) ; vous ne devriez pas avoir à modifier cela avec cette commande.
Bien. Vous appelez la tâche dans un shell, donc déterminer rapidement si vous échappez Bash, Ruby ou l’expression régulière devient difficile ou impossible. De plus, il semble que les corrections ne seront pas de simples remplacements.
Je suis nouveau sur Discourse, mais j’ai maintenant trouvé comment accéder au contenu brut, et oui, il contient tout le HTML : https://forum.amybo.org/raw/56/9
Avez-vous utilisé le script flarum_import.rb existant ? Il est difficile d’imaginer que le HTML se trouve dans le champ p.content de Flarum (ce qui est ce qui entre dans raw dans le script d’importation). Je suis à peu près sûr que Flarum utilise Markdown, donc je ne sais pas pourquoi vous auriez du HTML dans raw. Ou peut-être que le script est tout simplement défectueux.
Mais le barré est ce qui se trouve dans le HTML. Peut-être pouvez-vous simplement le corriger avec CSS.
Corriger le <POSTMENTION> est un peu plus délicat car Discourse a des citations, mais pas de mentions. La solution simple serait de simplement les transformer en un simple @${displayname} (et espérer que le nom d’utilisateur est le même qu’avant l’importation, ou faire une recherche dans user_custom_fields pour trouver le nom d’utilisateur mis à jour. Une autre chose que vous pourriez faire serait d’inclure un lien comme @mention a dit [ici](/t/-/<ID Discourse pour le sujet 25>/<8>).
Une solution folle serait d’écrire un script qui extrait le Markdown de la base de données Flarum et met à jour le champ raw pour l’inclure. Il faudrait toujours un peu de nettoyage (pour les mentions et POSTMENTIONS), mais cela corrigerait beaucoup de choses.
Une autre idée serait de geler votre site, de supprimer en masse toutes les données importées, de corriger le script d’importation et de le relancer.
Mais vous n’avez pas beaucoup de nouveaux messages depuis votre déménagement, vous pourriez donc peut-être les sauvegarder d’une manière ou d’une autre, faire une nouvelle importation sur une base de données vide, puis les ajouter à nouveau. La gestion des nouveaux utilisateurs serait un peu plus difficile.
Si vous avez un budget, vous pouvez me contacter ou poster dans Marketplace.
Merci Jay, je n’ai pas effectué la migration moi-même, donc je ne sais pas quel script a été utilisé. Le membre qui l’a fait est malade de la grippe, mais je lui transmettrai vos excellents conseils ici, à son retour.