Plugin de fonctionnalité de marquage automatique

Salut à tous ! Je crée un système où les tags sont générés automatiquement, afin que chaque personne puisse créer des tags !

À ce sujet :

  • Les tags sont créés sous forme de création de sujet
  • Si le tag mentionné par la personne n’existe pas, il sera ignoré par défaut dans le message

Mon objectif était de mettre en place une méthode de taggage automatique, de sorte que si #test1 n’existe pas, il soit créé automatiquement et que le contenu cuisiné du message soit actualisé pour mettre à jour le lien vers les tags, et ainsi de suite.

J’ai donc essayé plusieurs approches pour répondre à ce besoin, et je souhaiterais vous les montrer pour savoir s’il existe une meilleure façon d’atteindre mon objectif.

after_initialize do
   DiscourseEvent.on(:post_created) do |post, _, user|
      # Passage des tags de catégorie (#test:item1)
      tags = post.raw.split(' ').select { |t| t =~ /#/ && !t.include?(':') }
      tags.each do |t|
        tName = t.gsub('#', '')
        Tag.create_or_find_by(name: tName)
      end

      postAnalyzer = PostAnalyzer.new(post.raw, post.topic_id)
      cookedRaw = postAnalyzer.cook(post.raw)

      post.cooked = cookedRaw
      post.save

      post.publish_change_to_clients!(:revised, reload_topic: true)
   end
end

Merci pour votre aide !

1 « J'aime »