Für jeden Artikel gibt es eine Liste von Keywords, die derzeit markiert sind (umspannend mit der Klasse). Allerdings muss ich bestimmte Präpositionen innerhalb des Schlüsselwortes berücksichtigen ("at", "in", "on"). Jeder Artikel gehört zu einer Bestellung, die die Schlüsselwörter als durch Komma getrennte Zeichenfolge enthält.Hervorhebung Schlüsselwörter in String, erlaubt "at", "in", "on"
Zum Beispiel, wenn ich ein Long-Tail-Keyword wie "Boutique Hotels London" und der Artikel enthält die Worte "Boutique-Hotels in London" muss ich das als ein Stichwort hervorheben.
class Article < ActiveRecord::Base
def format_content
words = self.content
# map comma separated keywords into array and remove any whitespace
keywords = self.order.keywords.downcase.split(',').map{ |k| k.strip }
# replace words with keywords wrapped in span
keywords.each do |word|
words = words.gsub(/(#{word})/i, "<span class=\"text-primary\">\\1</span>")
end
words
end
end
Die format_content Verfahren wird in einem teilweise aus der Show Ansicht nach ein Artikel verwendet, so erstellt wird, wie: verketteten
<%= simple_format article.format_content, { class: "content" }, wrapper_tag: "p" %>
Dies würde Pre/Post-Wörter fangen, aber nicht diejenigen zwischen den Long Tail-Keywords. Muss für "Boutique-Hotel * in * London" arbeiten, während das Stichwort "Boutique-Hotel London" –
lautet, also sollte es nur für Präpositionen zwischen Keywords funktionieren? –
Ja für diejenigen, die zwischen Stichwörtern liegen (ein 'Schlüsselwort' kann in diesem Fall mehrere Wörter lang sein), aber auch für direkte Übereinstimmungen, wenn keine Präposition erforderlich ist. –