jekyll-jelly 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e159b9522b437272e44425f8d5756e406f91f0d
4
- data.tar.gz: 116efba0157d42e0a5652dc8e79963987ba1ab90
3
+ metadata.gz: 64802a3b7bfb485eed286ab12089ff1804ee1a65
4
+ data.tar.gz: bb69dc7cb8b5d6f16d6beeb9f7bbfdc021a9ea9d
5
5
  SHA512:
6
- metadata.gz: 28c50a1ae8aedbc6f915a966e8705a19bb6bd64c3cc5e4da7fc42f3c7598aa1dc45617891f99795718925905fd927f22c00e67734586cc183f56050797a6b8a3
7
- data.tar.gz: 7da4a81dd2b7c110ba2b8f0a8ac95b9b4c1ffa293dc2b8676c80a4d924a5ecf5dbe4492bccae4dfd280f915486e5b7ac1adfdc05ad7ba8f4cb74093ee4f95940
6
+ metadata.gz: 15697cffb4081714f2de6bb487f03ca697a4bf91d52ecdbcb3f435f6d2648dfe665a56072ed4aa3b7f8ed5ae99d075b05d54022d65b6b3493c63b7d98bb0f792
7
+ data.tar.gz: 8a6c699fc942d718e6aff62c012e8b64496be3737467254fb7ff317796418e62d01eb239c913e15c93e5b34406c3c5d241c49a30e76525fcf18da7498143c156
@@ -2,4 +2,10 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.3.3
5
- before_install: gem install bundler -v 1.15.1
5
+ before_install: gem install bundler -v 1.13.7
6
+
7
+ install:
8
+ - bundle install
9
+
10
+ script:
11
+ - bundle exec rake test
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Jelly 🍥 [![Build Status](https://travis-ci.org/helpscout/jekyll-jelly.svg?branch=master)](https://travis-ci.org/helpscout/jekyll-jelly)
1
+ # Jelly 🍥 [![Build Status](https://travis-ci.org/helpscout/jekyll-jelly.svg?branch=master)](https://travis-ci.org/helpscout/jekyll-jelly) [![Coverage Status](https://coveralls.io/repos/github/helpscout/jekyll-jelly/badge.svg?branch=master)](https://coveralls.io/github/helpscout/jekyll-jelly?branch=master)
2
2
 
3
3
  Help Scout's Jekyll component library.
4
4
 
@@ -21,8 +21,9 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ["lib"]
22
22
 
23
23
  spec.add_runtime_dependency "jekyll", ">= 3.1.2"
24
- spec.add_runtime_dependency "kramdown"
25
24
  spec.add_runtime_dependency "jekyll-spark", "0.3.0"
25
+ spec.add_runtime_dependency "kramdown"
26
+ spec.add_runtime_dependency "rouge"
26
27
 
27
28
  spec.add_development_dependency "bundler", "~> 1.13"
28
29
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,3 +1,7 @@
1
1
  require "jekyll/jelly/version"
2
2
 
3
+ require "jekyll/jelly/components/blocks/example"
4
+ require "jekyll/jelly/components/blocks/section"
5
+ require "jekyll/jelly/components/blocks/wistia_popover"
3
6
  require "jekyll/jelly/components/tags/image"
7
+ require "jekyll/jelly/components/tags/wistia"
@@ -0,0 +1,86 @@
1
+ require "jekyll-spark"
2
+ require "rouge"
3
+
4
+ module Jekyll
5
+ class ExampleComponent < ComponentBlock
6
+ include Liquid::StandardFilters
7
+
8
+ # The regular expression syntax checker. Start with the language specifier.
9
+ # Follow that by zero or more space separated options that take one of three
10
+ # forms: name, name=value, or name="<quoted list>"
11
+ #
12
+ # <quoted list> is a space-separated list of numbers
13
+ SYNTAX = /^([a-zA-Z0-9.+#-]+)((\s+\w+(=((\w|[0-9_-])+|"([0-9]+\s)*[0-9]+"))?)*)$/
14
+
15
+ def initialize(tag_name, markup, tokens)
16
+ super
17
+ if markup.strip =~ SYNTAX
18
+ @lang = $1.downcase
19
+ @options = {}
20
+ # if defined?($2) && $2 != ''
21
+ # # Split along 3 possible forms -- key="<quoted list>", key=value, or key
22
+ # $2.scan(/(?:\w+(?:=(?:(?:\w|[0-9_-])+|"[^"]*")?)?)/) do |opt|
23
+ # key, value = opt.split('=')
24
+ # # If a quoted list, convert to array
25
+ # if value && value.include?("\"")
26
+ # value.gsub!(/"/, "")
27
+ # value = value.split
28
+ # end
29
+ # @options[key.to_sym] = value || true
30
+ # end
31
+ # end
32
+ @options[:linenos] = "inline" if @options.key?(:linenos) and @options[:linenos] == true
33
+ end
34
+ end
35
+
36
+ def example(code, output)
37
+ language = @lang.to_s
38
+
39
+ if(language == "html" or language == "")
40
+ output = "<div class=\"c-card hs-code u-mrg-t-4 u-mrg-b-7\" data-js=\""+@lang.to_s+"\"><div class=\"u-pad-5 hs-code__example\" data-example-id=\"#{@options[:id]}\">\n#{code}\n</div>"
41
+ else
42
+ output = "<div class=\"c-card hs-code u-mrg-t-4 u-mrg-b-7\" data-js=\""+@lang.to_s+"\">"
43
+ end
44
+
45
+ output
46
+ end
47
+
48
+ def render_rouge(code)
49
+ formatter = Rouge::Formatters::HTML.new(line_numbers: @options[:linenos], wrap: false)
50
+ lexer = Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
51
+ code = formatter.format(lexer.lex(code))
52
+ "<div class=\"c-clipboard-copy-container js-code-snippet t-bdr-top\"><div class=\"u-pad-5 hs-code__highlight highlight\"><pre>#{code}</pre></div></div></div>"
53
+ end
54
+
55
+ def add_code_tag(code)
56
+ # Add nested <code> tags to code blocks
57
+ code = code.sub(/<pre>\n*/,'<pre><code class="language-' + @lang.to_s.gsub("+", "-") + '" data-lang="' + @lang.to_s + '">')
58
+ code = code.sub(/\n*<\/pre>/,"</code></pre>")
59
+ code.strip
60
+ end
61
+
62
+ def template(context)
63
+ content = @props["content"]
64
+ prefix = context["highlighter_prefix"] || ""
65
+ suffix = context["highlighter_suffix"] || ""
66
+ code = content.to_s.strip
67
+
68
+ output = case context.registers[:site].highlighter
69
+
70
+ when 'rouge'
71
+ render_rouge(code)
72
+ end
73
+
74
+ if (@lang.to_s == "html")
75
+ rendered_output = example(code, output) + add_code_tag(output)
76
+ else
77
+ rendered_output = example(code, output) + '</div>'
78
+ end
79
+ prefix + rendered_output + suffix
80
+ end
81
+
82
+ end
83
+ end
84
+
85
+ Liquid::Template.register_tag("example", Jekyll::ExampleComponent)
86
+ Liquid::Template.register_tag("Example", Jekyll::ExampleComponent)
@@ -0,0 +1,36 @@
1
+ require "jekyll-spark"
2
+
3
+ module Jekyll
4
+ class SectionComponent < ComponentBlock
5
+ DEFAULT_TAG_PROPS = [
6
+ "id",
7
+ "style",
8
+ ]
9
+
10
+ def template(context)
11
+ class_name = @props["class"]
12
+ container = @props["container"].nil? ? true : @props["container"]
13
+ content = @props["content"]
14
+ default_props = selector_props(DEFAULT_TAG_PROPS)
15
+
16
+ if (container)
17
+ content = %Q[
18
+ <div class="o-container">
19
+ #{content}
20
+ </div>
21
+ ]
22
+ end
23
+
24
+ render = %Q[
25
+ <div class="o-section #{class_name}" #{default_props}>
26
+ #{content}
27
+ </div>
28
+ ]
29
+ end
30
+ end
31
+ end
32
+
33
+ Liquid::Template.register_tag(
34
+ "Section",
35
+ Jekyll::SectionComponent
36
+ )
@@ -0,0 +1,37 @@
1
+ require "jekyll-spark"
2
+
3
+ module Jekyll
4
+ class WistiaPopoverComponent < ComponentBlock
5
+ def template(context)
6
+ unless @props["id"]
7
+ return ""
8
+ end
9
+
10
+ id = @props["id"].gsub("wistia_", "").gsub("Wistia_", "")
11
+ class_name = @props["class"]
12
+ content = @props["content"]
13
+ popover_content = @props["popoverContent"] || "link"
14
+ selector = @props["selector"] || "span"
15
+ style = @props["style"]
16
+
17
+ popover_content = "popoverContent=#{popover_content}"
18
+
19
+ render = %Q[
20
+ <script src="https://fast.wistia.com/embed/medias/#{id}.jsonp" async></script>
21
+ <#{selector}
22
+ class="
23
+ #{class_name}
24
+ wistia_embed wistia_async_#{id}
25
+ popover=true popoverAnimateThumbnail=true
26
+ #{popover_content}
27
+ "
28
+ style="#{style}"
29
+ >
30
+ #{content}
31
+ </#{selector}>
32
+ ]
33
+ end
34
+ end
35
+ end
36
+
37
+ Liquid::Template.register_tag('WistiaPopover', Jekyll::WistiaPopoverComponent)
@@ -0,0 +1,27 @@
1
+ require "jekyll-spark"
2
+
3
+ module Jekyll
4
+ class WistiaComponent < ComponentTag
5
+ def template(context)
6
+ unless @props["id"]
7
+ return ""
8
+ end
9
+
10
+ id = @props["id"].gsub("wistia_", "").gsub("Wistia_", "").gsub("wistia-", "").gsub("Wistia-", "")
11
+ class_name = @props["class"]
12
+
13
+ render = %Q[
14
+ <script src='https://fast.wistia.com/embed/medias/#{id}.jsonp' async></script>
15
+ <div class='wistia_responsive_padding #{class_name}' style='padding:56.25% 0 0 0;position:relative;'>
16
+ <div class='wistia_responsive_wrapper' style='height:100%;left:0;position:absolute;top:0;width:100%;'>
17
+ <div class='wistia_embed wistia_async_#{id} videoFoam=true' style='height:100%;width:100%'>
18
+ &nbsp;
19
+ </div>
20
+ </div>
21
+ </div>
22
+ ]
23
+ end
24
+ end
25
+ end
26
+
27
+ Liquid::Template.register_tag('Wistia', Jekyll::WistiaComponent)
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Jelly
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-jelly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ItsJonQ
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.1.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll-spark
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.3.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.3.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: kramdown
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +53,19 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: jekyll-spark
56
+ name: rouge
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - '='
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: 0.3.0
61
+ version: '0'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - '='
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: 0.3.0
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -196,7 +210,11 @@ files:
196
210
  - jekyll-jelly.gemspec
197
211
  - lib/jekyll-jelly.rb
198
212
  - lib/jekyll/jelly.rb
213
+ - lib/jekyll/jelly/components/blocks/example.rb
214
+ - lib/jekyll/jelly/components/blocks/section.rb
215
+ - lib/jekyll/jelly/components/blocks/wistia_popover.rb
199
216
  - lib/jekyll/jelly/components/tags/image.rb
217
+ - lib/jekyll/jelly/components/tags/wistia.rb
200
218
  - lib/jekyll/jelly/version.rb
201
219
  homepage: https://github.com/helpscout/jekyll-jelly
202
220
  licenses: