module Quesadilla::Extractor::HTML
Convert entites and entire string to HTML
.
This module has no public methods.
Constants
- HTML_ESCAPE_MAP
Private Instance Methods
display_html(display_text, entities)
click to toggle source
# File lib/quesadilla/extractor/html.rb, line 44 def display_html(display_text, entities) return html_escape(display_text) unless entities and entities.length > 0 # Replace entities html = sub_entities(display_text, entities, true) do |entity| html_entity(entity) end # Return html_un_pre_escape(html) end
html_entity(entity)
click to toggle source
# File lib/quesadilla/extractor/html.rb, line 56 def html_entity(entity) display_text = html_pre_escape(entity[:display_text]) case entity[:type] when ENTITY_TYPE_EMPHASIS @renderer.emphasis(display_text) when ENTITY_TYPE_DOUBLE_EMPHASIS @renderer.double_emphasis(display_text) when ENTITY_TYPE_TRIPLE_EMPHASIS @renderer.triple_emphasis(display_text) when ENTITY_TYPE_STRIKETHROUGH @renderer.strikethrough(display_text) when ENTITY_TYPE_CODE @renderer.code(display_text) when ENTITY_TYPE_HASHTAG @renderer.hashtag(display_text, html_pre_escape(entity[:hashtag])) when ENTITY_TYPE_USER @renderer.user(display_text, html_pre_escape(entity[:username]), html_pre_escape(entity[:user_id])) when ENTITY_TYPE_LINK @renderer.link(display_text, entity[:url], html_pre_escape(entity[:title])) else # Catchall html_pre_escape(entity[:text]) end end
html_escape(string)
click to toggle source
# File lib/quesadilla/extractor/html.rb, line 99 def html_escape(string) return '' unless string string.to_s.gsub(/&/, '&').gsub(/</, '<').gsub(/>/, '>').gsub(/"/, '"').gsub(/'/, ''').gsub(/\//, '/') end
html_pre_escape(string)
click to toggle source
Pre-escape. Convert bad characters to high UTF-8 characters We do this dance so we don’t throw off the indexes so the entities get inserted correctly.
# File lib/quesadilla/extractor/html.rb, line 83 def html_pre_escape(string) return '' unless string HTML_ESCAPE_MAP.each do |escape| string = string.to_s.gsub(escape[:pattern], escape[:placeholder]) end string end
html_un_pre_escape(string)
click to toggle source
Convert bad characters (now, high UTF-8 characters) to HTML
escaped ones
# File lib/quesadilla/extractor/html.rb, line 92 def html_un_pre_escape(string) HTML_ESCAPE_MAP.each do |escape| string = string.gsub(escape[:placeholder], escape[:text]) end string end