added a new Markdown renderer (TwitteredMarkdown) which will be used for sharing to Twitter
This commit is contained in:
parent
ca7789750a
commit
0bf46a888f
|
@ -9,4 +9,9 @@ module MarkdownHelper
|
|||
md = Redcarpet::Markdown.new(Redcarpet::Render::StripDown, MARKDOWN_OPTS)
|
||||
CGI.unescape_html(Sanitize.fragment(md.render(content), EVIL_TAGS)).strip
|
||||
end
|
||||
|
||||
def twitter_markdown(content)
|
||||
md = Redcarpet::Markdown.new(TwitteredMarkdown, MARKDOWN_OPTS)
|
||||
CGI.unescape_html(Sanitize.fragment(md.render(content), EVIL_TAGS)).strip
|
||||
end
|
||||
end
|
|
@ -28,8 +28,8 @@ class Services::Twitter < Service
|
|||
|
||||
def prepare_tweet(answer)
|
||||
# TODO: improve this.
|
||||
question_content = strip_markdown answer.question.content
|
||||
answer_content = strip_markdown answer.content
|
||||
question_content = twitter_markdown answer.question.content
|
||||
answer_content = twitter_markdown answer.content
|
||||
answer_url = show_user_answer_url(
|
||||
id: answer.id,
|
||||
username: answer.user.screen_name,
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
class TwitteredMarkdown < Redcarpet::Render::StripDown
|
||||
|
||||
def preprocess(text)
|
||||
wrap_mentions(text)
|
||||
end
|
||||
|
||||
def wrap_mentions(text)
|
||||
text.gsub! /(^|\s)@([a-zA-Z0-9_]{1,16})/ do
|
||||
local_user = User.find_by_screen_name($2)
|
||||
if local_user.nil?
|
||||
"#{$1}#{$2}"
|
||||
else
|
||||
service = local_user.services.where(type: "Services::Twitter").first
|
||||
if service.nil?
|
||||
"#{$1}#{$2}"
|
||||
else
|
||||
"#{$1}@#{service.nickname}"
|
||||
end
|
||||
end
|
||||
end
|
||||
text
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue