octopress-image-caption-tag 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 580aafb32a39bc4905bc13addc574516a8185a21
4
- data.tar.gz: bfb64275f2b77a1508ac1d9ecc21f4420adbf3f9
3
+ metadata.gz: 3e0e82cc1e3553a1963087be8c9884afc093561c
4
+ data.tar.gz: c1c41ecad9c622e63a3b81d987932b5b4aed5796
5
5
  SHA512:
6
- metadata.gz: f17f366dd0d72b3a1fcc99b116dd120cc91c2af4a07eddba539db01142e9464d5e8d8feee1fbf059a07178dc5fd92742673b832919c2b589c6a26a66a1e8a8a1
7
- data.tar.gz: 10f6bc1f9b6585b89c6a776144debe0772148812d617ef1cb171ce65e1d285d9af74d7f589dbf3d24953087c109329d1b0f14b2bc533ae6a02b9c934de9edd5d
6
+ metadata.gz: fe5368e095b007307479aa1723b552ee2de8e5d345925041648e1fe35880c0b35efd07e864e7b23ce964ada72b2c51f3ae2881bfc110b2fbb93689a6b6c801c8
7
+ data.tar.gz: 7e8b5adfc78a6a995b678aa7c2f5d4e2a0ac62523104cdc0e0ecaf84ad065fca0728e9fa1ec95b60edfff7b7c03a1fc20fb0d576581db206c80df07a2eb6f7d9
@@ -1,4 +1,5 @@
1
- Copyright (c) 2015 Brandon Mathis
1
+ Copyright (c) 2015 Charles Beynon
2
+ Based on work by Brandon Mathis
2
3
 
3
4
  MIT License
4
5
 
@@ -1,15 +1,67 @@
1
- require "octopress-image-caption-tag/version"
2
- require "liquid"
1
+ require 'octopress-image-caption-tag/version'
2
+ require 'liquid'
3
3
 
4
4
  # Title: Simple Image tag for Jekyll
5
- # Authors: Brandon Mathis http://brandonmathis.com
5
+ # Authors: Charles Beynon https://eulerpi.io
6
+ # Brandon Mathis http://brandonmathis.com
6
7
  # Felix Schäfer, Frederic Hemberger
7
8
  #
8
9
 
9
10
  module Octopress
10
11
  module Tags
11
12
  module ImageCaptionTag
13
+ module ImageCaptionFunctions
14
+ def parse_sizes(raw_size)
15
+ if /\s*(?<w>\d+%?)\s+(?<h>\d+%?)/ =~ raw_size
16
+ @width = w
17
+ @height = h
18
+ elsif @class.rstrip == 'right' || @class.rstrip == 'left'
19
+ @width = '33%'
20
+ else
21
+ @width = '100%'
22
+ end
23
+ end
24
+
25
+ def parse_title(raw_title)
26
+ if /(?:"|')(?<title>[^"']+)?(?:"|')\s+(?:"|')(?<alt>[^"']+)?(?:"|')/ =~ raw_title
27
+ @title = title
28
+ @alt = alt
29
+ else
30
+ /(?:"|')(?<titlealt>[^"']+)?(?:"|')/ =~ raw_title
31
+ @title = titlealt
32
+ @alt = titlealt
33
+ end
34
+ end
35
+
36
+ def absolute_sized_figure
37
+ <<-EOS.gsub(/^ {10}/, '') # gsubm is to pretty up source by indenting
38
+ <figure class='caption-wrapper #{@class.rstrip}'>
39
+ <a class='image-popup' href='#{@img}'>
40
+ <img class='caption' src='#{@img}' width='#{@width}' height='#{@height}' title='#{@title}' alt='#{@alt}'>
41
+ </a>
42
+ <figcaption class='caption-text' style='width:#{@width.to_i - 10}px;'>
43
+ #{@caption}
44
+ </figcaption>
45
+ </figure>
46
+ EOS
47
+ end
48
+
49
+ def relative_sized_figure
50
+ <<-EOS.gsub(/^ {10}/, '') # gsubm is to pretty up source by indenting
51
+ <figure class='caption-wrapper #{@class.rstrip}' style='width:#{@width};'>
52
+ <a class='image-popup' href='#{@img}'>
53
+ <img class='caption' src='#{@img}' width='100%' height='100%' title='#{@title}' alt='#{@alt}'>
54
+ </a>
55
+ <figcaption class='caption-text'>
56
+ #{@caption}
57
+ </figcaption>
58
+ </figure>
59
+ EOS
60
+ end
61
+ end
62
+
12
63
  class Tag < Liquid::Tag
64
+ include ImageCaptionFunctions
13
65
  @img = nil
14
66
  @title = nil
15
67
  @class = ''
@@ -17,53 +69,31 @@ module Octopress
17
69
  @height = ''
18
70
 
19
71
  def initialize(tag_name, markup, tokens)
20
- if markup =~ /(\S.*\s+)?(https?:\/\/|\/)(\S+)(\s+\d+%?\s+\d+%?)?(\s+.+)?/i
21
- @class = $1 || ''
22
- @img = $2 + $3
23
- if $5
24
- @title = $5.strip
25
- end
26
- if $4 =~ /\s*(\d+%?)\s+(\d+%?)/
27
- @width = $1
28
- @height = $2
29
- elsif @class.rstrip == "right" or @class.rstrip == "left"
30
- @width = "33%"
31
- else
32
- @width = "100%"
33
- end
34
- if /(?:"|')(?<title>[^"']+)?(?:"|')\s+(?:"|')(?<alt>[^"']+)?(?:"|')/ =~ @title
35
- @title = title
36
- @alt = alt
37
- else
38
- @alt = @title.gsub!(/"/, '&#34;') if @title
39
- end
72
+ if %r{(?<classname>\S.*\s+)?(?<protocol>https?://|/)(?<url>\S+)(?<sizes>\s+\d+%?\s+\d+%?)?(?<title>\s+.+)?} =~ markup
73
+ @class = classname || 'center'
74
+ @img = "#{protocol}#{url}"
75
+ @title = title.strip if title
76
+ parse_sizes(sizes)
77
+ parse_title(@title)
40
78
  end
41
79
  super
42
80
  end
43
81
 
44
82
  def render(context)
45
83
  super
46
- if @img && @width[-1] == "%" # Relative width, so width goes on outer span
47
- "<figure class='#{('caption-wrapper ' + @class).rstrip}' style='width:#{@width};'>" +
48
- "<a class='image-popup' href='#{@img}'>" +
49
- "<img class='caption' src='#{@img}' width='100%' height='100%' title='#{@title}' alt='#{@alt}'>" +
50
- "</a>" +
51
- "<figurecaption class='caption-text'>#{@title}</figurecaption>" +
52
- "</figure>"
84
+ @caption = @title
85
+ if @img && @width[-1] == '%' # Relative width, so width goes on outer span
86
+ relative_sized_figure
53
87
  elsif @img # Absolute width, so width goes on the img tag and text span gets sytle-width:@width-15;
54
- "<figure class='#{('caption-wrapper ' + @class).rstrip}'>" +
55
- "<a class='image-popup' href='#{@img}'>" +
56
- "<img class='caption' src='#{@img}' width='#{@width}px' height='#{@height}px' title='#{@title}' alt='#{@alt}'>" +
57
- "</a>" +
58
- "<figurecaption class='caption-text' style='width:#{@width.to_i - 10}px;'>#{@title}</figurecaption>" +
59
- "</figure>"
88
+ absolute_sized_figure
60
89
  else
61
- "Error processing input, expected syntax: {% imgcap [class name(s)] /url/to/image [width height] [title [alt]] %}"
90
+ 'Error processing input, expected syntax: {% imgcap [class name(s)] /url/to/image [width height] [title [alt]] %}'
62
91
  end
63
92
  end
64
93
  end
65
94
 
66
95
  class Block < Liquid::Block
96
+ include ImageCaptionFunctions
67
97
  @img = nil
68
98
  @title = nil
69
99
  @class = ''
@@ -71,54 +101,29 @@ module Octopress
71
101
  @height = ''
72
102
 
73
103
  def initialize(tag_name, markup, tokens)
74
- if markup =~ /(\S.*\s+)?(https?:\/\/|\/)(\S+)(\s+\d+%?\s+\d+%?)?(\s+.+)?/i
75
- @class = $1 || ''
76
- @img = $2 + $3
77
- if $5
78
- @title = $5.strip
79
- end
80
- if $4 =~ /\s*(\d+%?)\s+(\d+%?)/
81
- @width = $1
82
- @height = $2
83
- elsif @class.rstrip == "right" or @class.rstrip == "left"
84
- @width = "33%"
85
- else
86
- @width = "100%"
87
- end
88
- if /(?:"|')(?<title>[^"']+)?(?:"|')\s+(?:"|')(?<alt>[^"']+)?(?:"|')/ =~ @title
89
- @title = title
90
- @alt = alt
91
- else
92
- @alt = @title.gsub!(/"/, '&#34;') if @title
93
- end
104
+ if %r{(?<classname>\S.*\s+)?(?<protocol>https?://|/)(?<url>\S+)(?<sizes>\s+\d+%?\s+\d+%?)?(?<title>\s+.+)?} =~ markup
105
+ @class = classname || 'center'
106
+ @img = "#{protocol}#{url}"
107
+ @title = title.strip if title
108
+ parse_sizes(sizes)
109
+ parse_title(@title)
94
110
  end
95
111
  super
96
112
  end
97
113
 
98
114
  def render(context)
99
- @caption = super
100
115
  site = context.registers[:site]
101
- converter = site.getConverterImpl(Jekyll::Converters::Markdown)
102
- if @img && @width[-1] == "%" # Relative width, so width goes on outer span
103
- "<figure class='#{('caption-wrapper ' + @class).rstrip}' style='width:#{@width};'>" +
104
- "<a class='image-popup' href='#{@img}'>" +
105
- "<img class='caption' src='#{@img}' width='100%' height='100%' title='#{@title}' alt='#{@alt}'>" +
106
- "</a>" +
107
- "<figurecaption class='caption-text'>#{@caption}</figurecaption>" +
108
- "</figure>"
116
+ converter = site.find_converter_instance(Jekyll::Converters::Markdown)
117
+ @caption = converter.convert(super).lstrip.rstrip
118
+ if @img && @width[-1] == '%' # Relative width, so width goes on outer span
119
+ relative_sized_figure
109
120
  elsif @img # Absolute width, so width goes on the img tag and text span gets sytle-width:@width-15;
110
- "<figure class='#{('caption-wrapper ' + @class).rstrip}'>" +
111
- "<a class='image-popup' href='#{@img}'>" +
112
- "<img class='caption' src='#{@img}' width='#{@width}px' height='#{@height}px' title='#{@title}' alt='#{@alt}'>" +
113
- "</a>" +
114
- "<figurecaption class='caption-text' style='width:#{@width.to_i - 10}px;'>#{converter.convert(@caption)}</figurecaption>" +
115
- "</figure>"
121
+ absolute_sized_figure
116
122
  else
117
- "Error processing input, expected syntax: {% imgcaption [class name(s)] /url/to/image [width height] [title [alt]] %} Caption Text {% endimgcaption %}"
123
+ 'Error processing input, expected syntax: {% imgcaption [class name(s)] /url/to/image [width height] [title [alt]] %} Caption Text {% endimgcaption %}'
118
124
  end
119
125
  end
120
126
  end
121
-
122
127
  end
123
128
  end
124
129
  end
@@ -127,12 +132,12 @@ Liquid::Template.register_tag('imgcap', Octopress::Tags::ImageCaptionTag::Tag)
127
132
  Liquid::Template.register_tag('imgcaption', Octopress::Tags::ImageCaptionTag::Block)
128
133
 
129
134
  if defined? Octopress::Docs
130
- Octopress::Docs.add({
131
- name: "Octopress Image Caption Tag",
132
- gem: "octopress-image-caption-tag",
133
- description: "A tag to create images with pretty captions for Jekyll and Octopress blogs",
134
- path: File.expand_path(File.join(File.dirname(__FILE__), "../")),
135
- source_url: "https://github.com/eToThePiIPower/octopress-image-caption-tag",
135
+ Octopress::Docs.add(
136
+ name: 'Octopress Image Caption Tag',
137
+ gem: 'octopress-image-caption-tag',
138
+ description: 'A tag to create images with pretty captions for Jekyll and Octopress blogs',
139
+ path: File.expand_path(File.join(File.dirname(__FILE__), '../')),
140
+ source_url: 'https://github.com/eToThePiIPower/octopress-image-caption-tag',
136
141
  version: Octopress::Tags::ImageCaptionTag::VERSION
137
- })
142
+ )
138
143
  end
@@ -1,7 +1,7 @@
1
1
  module Octopress
2
2
  module Tags
3
3
  module ImageCaptionTag
4
- VERSION = "0.0.3"
4
+ VERSION = '0.0.5'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octopress-image-caption-tag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Beynon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-15 00:00:00.000000000 Z
11
+ date: 2016-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry-byebug
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -113,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
127
  version: '0'
114
128
  requirements: []
115
129
  rubyforge_project:
116
- rubygems_version: 2.4.8
130
+ rubygems_version: 2.5.1
117
131
  signing_key:
118
132
  specification_version: 4
119
133
  summary: A tag to create images with pretty captions for Jekyll and Octopress blogs.