aboutsummaryrefslogtreecommitdiff
path: root/plugins/blockquote.rb
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/blockquote.rb')
-rw-r--r--plugins/blockquote.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/plugins/blockquote.rb b/plugins/blockquote.rb
index 7fb8c261..ebdc0e89 100644
--- a/plugins/blockquote.rb
+++ b/plugins/blockquote.rb
@@ -21,6 +21,7 @@ module Jekyll
class Blockquote < Liquid::Block
FullCiteWithTitle = /(\S.*)\s+(https?:\/\/)(\S+)\s+(.+)/i
FullCite = /(\S.*)\s+(https?:\/\/)(\S+)/i
+ AuthorTitle = /([^,]+),([^,]+)/
Author = /(.+)/
def initialize(tag_name, markup, tokens)
@@ -30,23 +31,21 @@ module Jekyll
if markup =~ FullCiteWithTitle
@by = $1
@source = $2 + $3
- @title = $4.titlecase
+ @title = $4.titlecase.strip
elsif markup =~ FullCite
@by = $1
@source = $2 + $3
+ elsif markup =~ AuthorTitle
+ @by = $1
+ @title = $2.titlecase.strip
elsif markup =~ Author
- if $1 =~ /([^,]+),([^,]+)/
- @by = $1
- @title = $2.titlecase
- else
- @by = $1
- end
+ @by = $1
end
super
end
def render(context)
- quote = paragraphize(super.map(&:strip).join)
+ quote = paragraphize(super)
author = "<strong>#{@by.strip}</strong>" if @by
if @source
url = @source.match(/https?:\/\/(.+)/)[1].split('/')
@@ -75,7 +74,7 @@ module Jekyll
end
def paragraphize(input)
- "<p>#{input.gsub(/\n\n/, '</p><p>').gsub(/\n/, '<br/>')}</p>"
+ "<p>#{input.lstrip.rstrip.gsub(/\n\n/, '</p><p>').gsub(/\n/, '<br/>')}</p>"
end
end
end