Implemented pullquoteleft functionality

This commit is contained in:
strand 2011-10-11 15:59:25 -07:00
parent 86c72a4ca6
commit 8897083cf7

View File

@ -1,10 +1,10 @@
# #
# Author: Brandon Mathis # Author: Brandon Mathis
# Based on the sematic pullquote technique by Maykel Loomans at http://miekd.com/articles/pull-quotes-with-html5-and-css/ # Based on the semantic pullquote technique by Maykel Loomans at http://miekd.com/articles/pull-quotes-with-html5-and-css/
# #
# Outputs a span with a data-pullquote attribute set from the marked pullquote. Example: # Outputs a span with a data-pullquote attribute set from the marked pullquote. Example:
# #
# {% pullquote %} # {% pullquote %}
# When writing longform posts, I find it helpful to include pullquotes, which help those scanning a post discern whether or not a post is helpful. # When writing longform posts, I find it helpful to include pullquotes, which help those scanning a post discern whether or not a post is helpful.
# It is important to note, {" pullquotes are merely visual in presentation and should not appear twice in the text. "} That is why it is prefered # It is important to note, {" pullquotes are merely visual in presentation and should not appear twice in the text. "} That is why it is prefered
# to use a CSS only technique for styling pullquotes. # to use a CSS only technique for styling pullquotes.
@ -17,11 +17,13 @@
# </span> # </span>
# </p> # </p>
# #
# Strand's modification adds the ability to call this plugin with {% pullquote align:left %} which duplicates the current behavior of the pullquote plugin, with a left float and appropriate margins.
module Jekyll module Jekyll
class PullquoteTag < Liquid::Block class PullquoteTag < Liquid::Block
def initialize(tag_name, markup, tokens) def initialize(tag_name, markup, tokens)
markup =~ /align:left/i ? @align = "left" : @align = ""
super super
end end
@ -29,7 +31,7 @@ module Jekyll
output = super output = super
if output.join =~ /\{"\s*(.+)\s*"\}/ if output.join =~ /\{"\s*(.+)\s*"\}/
@quote = $1 @quote = $1
"<span class='has-pullquote' data-pullquote='#{@quote}'>#{output.join.gsub(/\{"\s*|\s*"\}/, '')}</span>" "<span class='has-pullquote#{@align}' data-pullquote='#{@quote}'>#{output.join.gsub(/\{"\s*|\s*"\}/, '')}</span>" # TODO Determine how to makethis span have a left or right flag.
else else
return "Surround your pullquote like this {\" text to be quoted \"}" return "Surround your pullquote like this {\" text to be quoted \"}"
end end