tumblr: convert commentary to dtext.

* Convert Tumblr commentary to DText.
* Strip extraneous whitespace in links and blockquotes.
* Add newlines after block elements to ensure they're separated from
  subsequent blocks.
This commit is contained in:
evazion
2017-06-27 16:01:34 -05:00
parent b880b07387
commit 71f84b10af
4 changed files with 32 additions and 12 deletions

View File

@@ -377,13 +377,13 @@ class DText
case element.name
when "text"
element.content
element.content.gsub(/(?:\r|\n)+$/, "")
when "br"
"\n"
when "p"
from_html(element.inner_html, &block) + "\n\n"
when "p", "ul", "ol"
from_html(element.inner_html, &block).strip + "\n\n"
when "blockquote"
"[quote]#{from_html(element.inner_html, &block)}[/quote]" if element.inner_html.present?
"[quote]#{from_html(element.inner_html, &block).strip}[/quote]\n\n" if element.inner_html.present?
when "small", "sub"
"[tn]#{from_html(element.inner_html, &block)}[/tn]" if element.inner_html.present?
when "b", "strong"
@@ -395,13 +395,13 @@ class DText
when "s", "strike"
"[s]#{from_html(element.inner_html, &block)}[/s]" if element.inner_html.present?
when "li"
"* #{from_html(element.inner_html, &block)}" if element.inner_html.present?
"* #{from_html(element.inner_html, &block)}\n" if element.inner_html.present?
when "h1", "h2", "h3", "h4", "h5", "h6"
hN = element.name
title = from_html(element.inner_html, &block)
"#{hN}. #{title}\n"
"#{hN}. #{title}\n\n"
when "a"
title = from_html(element.inner_html, &block)
title = from_html(element.inner_html, &block).strip
url = element["href"]
%("#{title}":[#{url}]) if title.present? && url.present?
when "img"

View File

@@ -53,6 +53,10 @@ module Sources::Strategies
end
end
def dtext_artist_commentary_desc
DText.from_html(artist_commentary_desc).strip
end
def image_url
image_urls.first
end

View File

@@ -35,14 +35,11 @@ module Sources
should "get the dtext-ified commentary" do
desc = <<-EOS.strip_heredoc.chomp
blah blah
"test link":[http://www.google.com]
h1. lol
[b]blah[/b] [i]blah[/i] [u]blah[/u] [s]blah[/s]
herp derp
@@ -53,7 +50,6 @@ module Sources
* two
* three
* one
* two
* three

View File

@@ -42,6 +42,26 @@ module Sources
assert_equal(desc, @site.artist_commentary_desc)
end
should "get the dtext-ified commentary" do
desc = <<-EOS.strip_heredoc.chomp
h2. header
plain [b]bold[/b] [i]italics[/i] [s]strike[/s]
* one
* two
* one
* two
[quote]quote[/quote]
"link":[http://www.google.com]
EOS
assert_equal(desc, @site.dtext_artist_commentary_desc)
end
should "get the image url" do
assert_equal("http://data.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_os2buiIOt51wsfqepo1_raw.png", @site.image_url)
end