jekyll-twitch 0.2.0 → 1.0.0

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
  SHA256:
3
- metadata.gz: 24e65f5316a44f575b40aa9c3648bed759db6f3b4af9351f253bd391e7bb3a58
4
- data.tar.gz: 1de87e73576153b7d287649e02bb066a67c94657b4898c649b4db679bb8068cd
3
+ metadata.gz: 2e8a9ab0203d9deaa19ce8d026ee33a63c013650961798c3ef9ca85ef27033ef
4
+ data.tar.gz: 2a82b63af6524ed3a23869f58452885609a9b5a26a97f90ea2976a4ca3c4b992
5
5
  SHA512:
6
- metadata.gz: 65e89587802aeb7c674789c460d97105ae8d3e79dd05132cf99196bb3b72644008ea0669b9716ae7b3242e80d625c6f4b81583f87bf7df023ad08f48c321fd73
7
- data.tar.gz: 967079816fed3c117bdbc7a777c88b804438070225a30557bd9a2ecd711e85fd6678141b3e8c5d569ebafe2118f32b7c4f1d228b75b65f40c4ac5d64c3149064
6
+ metadata.gz: ab5f9314d65a9538344b7df4cbf18a4edf6743f9b6589e80448c5f36cd9a3e595d118b37b97ec307516733046b77972c61a8fbd81ff93278597b62ec1b3ad01a
7
+ data.tar.gz: bd09c881bbb44701752de5b2b6f0044426234a48620a052bee37c7abf24fbf76fbb95f517ff213d8f384652423a4947ae19834f60426ec3761b1b9059cc24bfe
@@ -0,0 +1,25 @@
1
+ name: Check Code
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ lint:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - uses: ruby/setup-ruby@v1
11
+ with:
12
+ ruby-version: 2.7.2
13
+ - run: bundle install
14
+ - name: Rubocop
15
+ run: bundle exec rubocop
16
+ test:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: 2.7.2
23
+ - run: bundle install
24
+ - name: RSpec
25
+ run: bundle exec rspec
@@ -0,0 +1,17 @@
1
+ name: Build and deploy Jekyll site to GitHub Pages
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ github-pages:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - uses: helaili/jekyll-action@v2
14
+ with:
15
+ jekyll_src: 'docs'
16
+ target_branch: 'gh-pages'
17
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1 @@
1
+ I"u{"source"=>"/home/chael/Code/jekyll-twitch", "destination"=>"/home/chael/Code/jekyll-twitch/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/:categories/:year/:month/:day/:title:output_ext"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>[".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>[], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"\n\n", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>nil, "show_dir_listing"=>false, "permalink"=>"date", "paginate_path"=>"/page:num", "timezone"=>nil, "quiet"=>false, "verbose"=>false, "defaults"=>[], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false, "syntax_highlighter"=>"rouge", "syntax_highlighter_opts"=>{:default_lang=>"plaintext", :guess_lang=>true}, "coderay"=>{}}, "livereload_port"=>35729, "serving"=>true, "watch"=>true, "url"=>nil}:ET
@@ -0,0 +1,11 @@
1
+ I" <p>This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at <a href="https://jekyllrb.com/">jekyllrb.com</a></p>
2
+
3
+ <p>You can find the source code for Minima at GitHub:
4
+ <a href="https://github.com/jekyll">jekyll</a> /
5
+ <a href="https://github.com/jekyll/minima">minima</a></p>
6
+
7
+ <p>You can find the source code for Jekyll at GitHub:
8
+ <a href="https://github.com/jekyll">jekyll</a> /
9
+ <a href="https://github.com/jekyll/jekyll">jekyll</a></p>
10
+
11
+ :ET
@@ -0,0 +1,19 @@
1
+ I"9<p>You’ll find this post in your <code class="language-plaintext highlighter-rouge">_posts</code> directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run <code class="language-plaintext highlighter-rouge">jekyll serve</code>, which launches a web server and auto-regenerates your site when a file is updated.</p>
2
+
3
+ <p>Jekyll requires blog post files to be named according to the following format:</p>
4
+
5
+ <p><code class="language-plaintext highlighter-rouge">YEAR-MONTH-DAY-title.MARKUP</code></p>
6
+
7
+ <p>Where <code class="language-plaintext highlighter-rouge">YEAR</code> is a four-digit number, <code class="language-plaintext highlighter-rouge">MONTH</code> and <code class="language-plaintext highlighter-rouge">DAY</code> are both two-digit numbers, and <code class="language-plaintext highlighter-rouge">MARKUP</code> is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.</p>
8
+
9
+ <p>Jekyll also offers powerful support for code snippets:</p>
10
+
11
+ <figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
12
+ <span class="nb">puts</span> <span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
13
+ <span class="k">end</span>
14
+ <span class="n">print_hi</span><span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
15
+ <span class="c1">#=&gt; prints 'Hi, Tom' to STDOUT.</span></code></pre></figure>
16
+
17
+ <p>Check out the <a href="https://jekyllrb.com/docs/home">Jekyll docs</a> for more info on how to get the most out of Jekyll. File all bugs/feature requests at <a href="https://github.com/jekyll/jekyll">Jekyll’s GitHub repo</a>. If you have questions, you can ask them on <a href="https://talk.jekyllrb.com/">Jekyll Talk</a>.</p>
18
+
19
+ :ET
data/.rubocop.yml ADDED
@@ -0,0 +1,24 @@
1
+ # Hey maintainer!
2
+ # Don't forget you can exclude individual examples using
3
+ # rubocop:disable RSpec/ExampleLength
4
+ # You're smarter than the machine!
5
+
6
+ AllCops:
7
+ SuggestExtensions: false
8
+ NewCops: enable
9
+ require:
10
+ - rubocop-rspec
11
+
12
+ Metrics/BlockLength:
13
+ Exclude:
14
+ - 'spec/**/*'
15
+
16
+ Naming/FileName:
17
+ Exclude:
18
+ - 'lib/jekyll-twitch.rb'
19
+
20
+ RSpec/ImplicitSubject:
21
+ Enabled: false
22
+
23
+ RSpec/NestedGroups:
24
+ Enabled: false
data/Gemfile CHANGED
@@ -1,9 +1,13 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in jekyll-twitch.gemspec
4
6
  gemspec
5
7
 
6
- gem "rake", "~> 12.0"
7
- gem "rspec", "~> 3.0"
8
+ gem 'rake', '~> 12.0'
9
+ gem 'rspec', '~> 3.0'
10
+ gem 'rubocop'
11
+ gem 'rubocop-rspec'
8
12
 
9
- gem "pry", "~> 0.14.0"
13
+ gem 'pry', '~> 0.14.0'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jekyll-twitch (0.1.1)
4
+ jekyll-twitch (1.0.0)
5
5
  jekyll
6
6
 
7
7
  GEM
@@ -9,6 +9,7 @@ GEM
9
9
  specs:
10
10
  addressable (2.7.0)
11
11
  public_suffix (>= 2.0.2, < 5.0)
12
+ ast (2.4.2)
12
13
  coderay (1.1.3)
13
14
  colorator (1.1.0)
14
15
  concurrent-ruby (1.1.8)
@@ -51,16 +52,21 @@ GEM
51
52
  rb-inotify (~> 0.9, >= 0.9.10)
52
53
  mercenary (0.4.0)
53
54
  method_source (1.0.0)
55
+ parallel (1.20.1)
56
+ parser (3.0.0.0)
57
+ ast (~> 2.4.1)
54
58
  pathutil (0.16.2)
55
59
  forwardable-extended (~> 2.6)
56
60
  pry (0.14.0)
57
61
  coderay (~> 1.1)
58
62
  method_source (~> 1.0)
59
63
  public_suffix (4.0.6)
64
+ rainbow (3.0.0)
60
65
  rake (12.3.3)
61
66
  rb-fsevent (0.10.4)
62
67
  rb-inotify (0.10.1)
63
68
  ffi (~> 1.0)
69
+ regexp_parser (2.1.1)
64
70
  rexml (3.2.4)
65
71
  rouge (3.26.0)
66
72
  rspec (3.10.0)
@@ -76,6 +82,21 @@ GEM
76
82
  diff-lcs (>= 1.2.0, < 2.0)
77
83
  rspec-support (~> 3.10.0)
78
84
  rspec-support (3.10.2)
85
+ rubocop (1.12.0)
86
+ parallel (~> 1.10)
87
+ parser (>= 3.0.0.0)
88
+ rainbow (>= 2.2.2, < 4.0)
89
+ regexp_parser (>= 1.8, < 3.0)
90
+ rexml
91
+ rubocop-ast (>= 1.2.0, < 2.0)
92
+ ruby-progressbar (~> 1.7)
93
+ unicode-display_width (>= 1.4.0, < 3.0)
94
+ rubocop-ast (1.4.1)
95
+ parser (>= 2.7.1.5)
96
+ rubocop-rspec (2.2.0)
97
+ rubocop (~> 1.0)
98
+ rubocop-ast (>= 1.1.0)
99
+ ruby-progressbar (1.11.0)
79
100
  safe_yaml (1.0.5)
80
101
  sassc (2.4.0)
81
102
  ffi (~> 1.9)
@@ -91,6 +112,8 @@ DEPENDENCIES
91
112
  pry (~> 0.14.0)
92
113
  rake (~> 12.0)
93
114
  rspec (~> 3.0)
115
+ rubocop
116
+ rubocop-rspec
94
117
 
95
118
  BUNDLED WITH
96
119
  2.1.4
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # Twitch::Jekyll
1
+ # Jekyll::Twitch
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/twitch/jekyll`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ This gem allows you to embed twitch clips in your Jekyll websites. It adds and registers a new twitch liquid tag that accepts a twitch clip url.
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ `{% twitch https://www.twitch.tv/chaelcodes/clip/SpoopySlipperyGrasshopperPogChamp %}`
6
6
 
7
7
  ## Installation
8
8
 
@@ -20,9 +20,19 @@ Or install it yourself as:
20
20
 
21
21
  $ gem install jekyll-twitch
22
22
 
23
+ Then add Jekyll-Twitch to your `_config.yml` like so:
24
+ ```
25
+ plugins:
26
+ - jekyll-twitch
27
+ ```
28
+
23
29
  ## Usage
24
30
 
25
- TODO: Write usage instructions here
31
+ When building your site, Jekyll no longer substitutes `site.url` for localhost, which means Twitch embeds will not render. You need to supply host and localhost to view clips in development. `jekyll serve --host localhost --port 4000`
32
+
33
+ This is a Jekyll liquid tag, so just put `{% twitch https://www.twitch.tv/chaelcodes/clip/SpoopySlipperyGrasshopperPogChamp %}` to embed your clip.
34
+
35
+ We intend to support broadcasts and videos soon.
26
36
 
27
37
  ## Development
28
38
 
@@ -32,7 +42,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
42
 
33
43
  ## Contributing
34
44
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/ChaelCodes/jekyll-twitch. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/ChaelCodes/jekyll-twitch/blob/master/CODE_OF_CONDUCT.md).
45
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ChaelCodes/jekyll-twitch. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/ChaelCodes/jekyll-twitch/blob/main/CODE_OF_CONDUCT.md).
36
46
 
37
47
 
38
48
  ## License
@@ -41,4 +51,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
41
51
 
42
52
  ## Code of Conduct
43
53
 
44
- Everyone interacting in the Twitch::Jekyll project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/ChaelCodes/jekyll-twitch/blob/master/CODE_OF_CONDUCT.md).
54
+ Everyone interacting in the Jekyll::Twitch project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/ChaelCodes/jekyll-twitch/blob/main/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
data/bin/console CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "twitch_tag"
4
+ require 'bundler/setup'
5
+ require 'twitch_tag'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "twitch_tag"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
data/docs/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ _site
2
+ .sass-cache
3
+ .jekyll-cache
4
+ .jekyll-metadata
5
+ vendor
data/docs/404.html ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ permalink: /404.html
3
+ layout: default
4
+ ---
5
+
6
+ <style type="text/css" media="screen">
7
+ .container {
8
+ margin: 10px auto;
9
+ max-width: 600px;
10
+ text-align: center;
11
+ }
12
+ h1 {
13
+ margin: 30px 0;
14
+ font-size: 4em;
15
+ line-height: 1;
16
+ letter-spacing: -1px;
17
+ }
18
+ </style>
19
+
20
+ <div class="container">
21
+ <h1>404</h1>
22
+
23
+ <p><strong>Page not found :(</strong></p>
24
+ <p>The requested page could not be found.</p>
25
+ </div>
data/docs/Gemfile ADDED
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+ # Hello! This is where you manage which Jekyll version is used to run.
5
+ # When you want to use a different version, change it below, save the
6
+ # file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
7
+ #
8
+ # bundle exec jekyll serve
9
+ #
10
+ # This will help ensure the proper Jekyll version is running.
11
+ # Happy Jekylling!
12
+ gem 'jekyll', '~> 4.2.0'
13
+
14
+ # there were issues with rubygems - remove these later
15
+ gem 'i18n', github: 'ruby-i18n/i18n'
16
+ gem 'rexml', github: 'ruby/rexml'
17
+ # This is the default theme for new Jekyll sites. You may change this to anything you like.
18
+ gem 'minima', github: 'jekyll/minima'
19
+
20
+ # there were issues with rubygems - remove these later
21
+ gem 'listen', github: 'guard/listen'
22
+ # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
23
+ # uncomment the line below. To upgrade, run `bundle update github-pages`.
24
+ # gem "github-pages", group: :jekyll_plugins
25
+ # If you have any plugins, put them here!
26
+ group :jekyll_plugins do
27
+ # remove github later, issues with rubygems
28
+ gem 'jekyll-feed', github: 'jekyll/jekyll-feed'
29
+ gem 'jekyll-twitch', github: 'ChaelCodes/jekyll-twitch', branch: 'main'
30
+ end
31
+
32
+ # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
33
+ # and associated library.
34
+ platforms :mingw, :x64_mingw, :mswin, :jruby do
35
+ gem 'tzinfo', '~> 1.2'
36
+ gem 'tzinfo-data'
37
+ end
38
+
39
+ # Performance-booster for watching directories on Windows
40
+ gem 'wdm', '~> 0.1.1', platforms: %i[mingw x64_mingw mswin]
data/docs/Gemfile.lock ADDED
@@ -0,0 +1,117 @@
1
+ GIT
2
+ remote: https://github.com/ChaelCodes/jekyll-twitch.git
3
+ revision: 88757581284a7e8432ebf26d5fdbe325a02a2698
4
+ branch: main
5
+ specs:
6
+ jekyll-twitch (1.0.0)
7
+ jekyll
8
+
9
+ GIT
10
+ remote: https://github.com/guard/listen.git
11
+ revision: 96c9476af3ab383c150e7f533718a2b37d1ede66
12
+ specs:
13
+ listen (3.5.1)
14
+ rb-fsevent (~> 0.10, >= 0.10.3)
15
+ rb-inotify (~> 0.9, >= 0.9.10)
16
+
17
+ GIT
18
+ remote: https://github.com/jekyll/jekyll-feed.git
19
+ revision: 6d4913fe5017c685d2437f328ab4a9138cea07a8
20
+ specs:
21
+ jekyll-feed (0.15.1)
22
+ jekyll (>= 3.7, < 5.0)
23
+
24
+ GIT
25
+ remote: https://github.com/jekyll/minima.git
26
+ revision: 3cdd14dff1216f561c68329e0b7420c2dc9b796a
27
+ specs:
28
+ minima (2.5.1)
29
+ jekyll (>= 3.5, < 5.0)
30
+ jekyll-feed (~> 0.9)
31
+ jekyll-seo-tag (~> 2.1)
32
+
33
+ GIT
34
+ remote: https://github.com/ruby-i18n/i18n.git
35
+ revision: f19ee0de1320671856dbc4375ab3f2716d13f03a
36
+ specs:
37
+ i18n (1.8.10)
38
+ concurrent-ruby (~> 1.0)
39
+
40
+ GIT
41
+ remote: https://github.com/ruby/rexml.git
42
+ revision: e941ff17ed3dad428d946b15524bb3529e684266
43
+ specs:
44
+ rexml (3.2.6)
45
+
46
+ GEM
47
+ remote: https://rubygems.org/
48
+ specs:
49
+ addressable (2.7.0)
50
+ public_suffix (>= 2.0.2, < 5.0)
51
+ colorator (1.1.0)
52
+ concurrent-ruby (1.1.8)
53
+ em-websocket (0.5.2)
54
+ eventmachine (>= 0.12.9)
55
+ http_parser.rb (~> 0.6.0)
56
+ eventmachine (1.2.7)
57
+ ffi (1.15.0)
58
+ forwardable-extended (2.6.0)
59
+ http_parser.rb (0.6.0)
60
+ jekyll (4.2.0)
61
+ addressable (~> 2.4)
62
+ colorator (~> 1.0)
63
+ em-websocket (~> 0.5)
64
+ i18n (~> 1.0)
65
+ jekyll-sass-converter (~> 2.0)
66
+ jekyll-watch (~> 2.0)
67
+ kramdown (~> 2.3)
68
+ kramdown-parser-gfm (~> 1.0)
69
+ liquid (~> 4.0)
70
+ mercenary (~> 0.4.0)
71
+ pathutil (~> 0.9)
72
+ rouge (~> 3.0)
73
+ safe_yaml (~> 1.0)
74
+ terminal-table (~> 2.0)
75
+ jekyll-sass-converter (2.1.0)
76
+ sassc (> 2.0.1, < 3.0)
77
+ jekyll-seo-tag (2.7.1)
78
+ jekyll (>= 3.8, < 5.0)
79
+ jekyll-watch (2.2.1)
80
+ listen (~> 3.0)
81
+ kramdown (2.3.1)
82
+ rexml
83
+ kramdown-parser-gfm (1.1.0)
84
+ kramdown (~> 2.0)
85
+ liquid (4.0.3)
86
+ mercenary (0.4.0)
87
+ pathutil (0.16.2)
88
+ forwardable-extended (~> 2.6)
89
+ public_suffix (4.0.6)
90
+ rb-fsevent (0.10.4)
91
+ rb-inotify (0.10.1)
92
+ ffi (~> 1.0)
93
+ rouge (3.26.0)
94
+ safe_yaml (1.0.5)
95
+ sassc (2.4.0)
96
+ ffi (~> 1.9)
97
+ terminal-table (2.0.0)
98
+ unicode-display_width (~> 1.1, >= 1.1.1)
99
+ unicode-display_width (1.7.0)
100
+
101
+ PLATFORMS
102
+ ruby
103
+
104
+ DEPENDENCIES
105
+ i18n!
106
+ jekyll (~> 4.2.0)
107
+ jekyll-feed!
108
+ jekyll-twitch!
109
+ listen!
110
+ minima!
111
+ rexml!
112
+ tzinfo (~> 1.2)
113
+ tzinfo-data
114
+ wdm (~> 0.1.1)
115
+
116
+ BUNDLED WITH
117
+ 2.1.4
data/docs/_config.yml ADDED
@@ -0,0 +1,54 @@
1
+ # Welcome to Jekyll!
2
+ #
3
+ # This config file is meant for settings that affect your whole blog, values
4
+ # which you are expected to set up once and rarely edit after that. If you find
5
+ # yourself editing this file very often, consider using Jekyll's data files
6
+ # feature for the data you need to update frequently.
7
+ #
8
+ # For technical reasons, this file is *NOT* reloaded automatically when you use
9
+ # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10
+ #
11
+ # If you need help with YAML syntax, here are some quick references for you:
12
+ # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13
+ # https://learnxinyminutes.com/docs/yaml/
14
+ #
15
+ # Site settings
16
+ # These are used to personalize your new site. If you look in the HTML files,
17
+ # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
18
+ # You can create any custom variable you would like, and they will be accessible
19
+ # in the templates via {{ site.myvariable }}.
20
+
21
+ title: Jekyll-Twitch Demo
22
+ email: chaelcodes@gmail.com
23
+ description: >- # this means to ignore newlines until "baseurl:"
24
+ You can use Jekyll-Twitch to embed Twitch clips in your Jekyll Site.
25
+ baseurl: "/jekyll-twitch" # the subpath of your site, e.g. /blog
26
+ url: "https://www.chael.codes" # the base hostname & protocol for your site, e.g. http://example.com
27
+ twitter_username: ChaelCodes
28
+ github_username: ChaelCodes
29
+
30
+ # Build settings
31
+ theme: minima
32
+ plugins:
33
+ - jekyll-feed
34
+ - jekyll-twitch
35
+
36
+ # Exclude from processing.
37
+ # The following items will not be processed, by default.
38
+ # Any item listed under the `exclude:` key here will be automatically added to
39
+ # the internal "default list".
40
+ #
41
+ # Excluded items can be processed by explicitly listing the directories or
42
+ # their entries' file path in the `include:` list.
43
+ #
44
+ # exclude:
45
+ # - .sass-cache/
46
+ # - .jekyll-cache/
47
+ # - gemfiles/
48
+ # - Gemfile
49
+ # - Gemfile.lock
50
+ # - node_modules/
51
+ # - vendor/bundle/
52
+ # - vendor/cache/
53
+ # - vendor/gems/
54
+ # - vendor/ruby/
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: post
3
+ date: 2021-04-23
4
+ ---
5
+ Version 1.0 of Jekyll-Twitch has just been released!
6
+
7
+ - embed now sizes to the parent div instead of being a fixed 1280x720
8
+ - See the example pages on the documentation site for more details
9
+ - Supports clips, channels, collections, and vods
data/docs/channel.md ADDED
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: page
3
+ title: Channel
4
+ permalink: /channel/
5
+ ---
6
+ This embeds a live broadcast of a particular channel in your page or post.
7
+
8
+ {% raw %}
9
+ ```
10
+ <div style="width:720px;height:480px">
11
+ {% twitch https://twitch.tv/ChaelCodes %}
12
+ </div>
13
+ ```
14
+ {% endraw %}
15
+ <div style="width:720px;height:480px">
16
+ {% twitch https://twitch.tv/ChaelCodes %}
17
+ </div>
data/docs/clips.md ADDED
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: page
3
+ title: Clips
4
+ permalink: /clips/
5
+ ---
6
+ This embed is used to add one Twitch clip to your page or post.
7
+
8
+ {% raw %}
9
+ ```
10
+ <div style="width:720px;height:480px">
11
+ {% twitch https://www.twitch.tv/chaelcodes/clip/DeterminedSweetRedpandaDoritosChip-pQiRlDz6rQ9uvuuq %}
12
+ </div>
13
+ ```
14
+ {% endraw %}
15
+ <div style="width:720px;height:480px">
16
+ {% twitch https://www.twitch.tv/chaelcodes/clip/DeterminedSweetRedpandaDoritosChip-pQiRlDz6rQ9uvuuq %}
17
+ </div>
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: page
3
+ title: Collection
4
+ permalink: /collection/
5
+ ---
6
+ This embed is used to add a collection of videos to your page or post.
7
+
8
+ {% raw %}
9
+ ```
10
+ <div style="width:720px;height:480px">
11
+ {% twitch https://www.twitch.tv/collections/x5bG2TGTeBYIRg %}
12
+ </div>
13
+ ```
14
+ {% endraw %}
15
+ <div style="width:720px;height:480px">
16
+ {% twitch https://www.twitch.tv/collections/x5bG2TGTeBYIRg %}
17
+ </div>
@@ -0,0 +1,31 @@
1
+ ---
2
+ layout: home
3
+ ---
4
+ This Liquid plugin lets you embed Twitch clips in your jekyll sites.
5
+
6
+ ### Usage
7
+ 1. Add the gem to your Gemfile.
8
+ ```
9
+ group :jekyll_plugins do
10
+ gem 'jekyll-twitch'
11
+ end
12
+ ```
13
+ 2. Add it the plugin to your `_config.yml`.
14
+ ```
15
+ plugins:
16
+ - jekyll-twitch
17
+ ```
18
+ 3. `bundle install` to install your gem.
19
+ 4. Start your server. `bundle exec jekyll serve --host localhost --port 4000`
20
+ 5. Embed Twitch on the page!
21
+ {% raw %}
22
+ ```
23
+ <div style="width:720px;height:480px">
24
+ {% twitch https://www.twitch.tv/chaelcodes/clip/DeterminedSweetRedpandaDoritosChip-pQiRlDz6rQ9uvuuq %}
25
+ </div>
26
+ ```
27
+ {% endraw %}
28
+
29
+ ### Testing in Development
30
+
31
+ When building your site in development, Jekyll no longer substitutes `site.url` for localhost, which means Twitch embeds will not render. You need to supply host and localhost to view clips in development. `jekyll serve --host localhost --port 4000` This is not an issue in production.
data/docs/videos.md ADDED
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: page
3
+ title: Videos
4
+ permalink: /videos/
5
+ ---
6
+ Whether you call them videos, vods, or higlights, this will embed them in your page or psot.
7
+
8
+ {% raw %}
9
+ ```
10
+ <div style="width:720px;height:480px">
11
+ {% twitch https://www.twitch.tv/videos/716698136 %}
12
+ </div>
13
+ ```
14
+ {% endraw %}
15
+ <div style="width:720px;height:480px">
16
+ {% twitch https://www.twitch.tv/videos/716698136 %}
17
+ </div>
@@ -1,30 +1,33 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'lib/jekyll-twitch/version'
2
4
 
3
5
  Gem::Specification.new do |spec|
4
- spec.name = "jekyll-twitch"
6
+ spec.name = 'jekyll-twitch'
5
7
  spec.version = Jekyll::Twitch::VERSION
6
- spec.authors = ["Rachael Wright-Munn"]
7
- spec.email = ["chaelcodes@gmail.com"]
8
+ spec.authors = ['Rachael Wright-Munn']
9
+ spec.email = ['chaelcodes@gmail.com']
8
10
 
9
- spec.summary = %q{Embed Twitch clips, VODs, and broadcasts in your Jekyll sites.}
10
- spec.description = %q{A gem that creates a TwitchTag liquid tag that allows Jekyll sites to render Twitch clips, VODs, and broadcasts.}
11
- spec.homepage = "https://github.com/ChaelCodes/jekyll-twitch"
12
- spec.license = "MIT"
13
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
11
+ spec.summary = 'Embed Twitch clips, VODs, and broadcasts in your Jekyll sites.'
12
+ spec.description = 'A gem that creates a TwitchTag liquid tag that allows Jekyll sites ' \
13
+ 'to render Twitch clips, VODs, and broadcasts.'
14
+ spec.homepage = 'https://github.com/ChaelCodes/jekyll-twitch'
15
+ spec.license = 'MIT'
16
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.4.0')
14
17
 
15
18
  # spec.metadata["allowed_push_host"] = "" # Used for private gem server
16
19
 
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = "https://github.com/ChaelCodes/jekyll-twitch"
20
+ spec.metadata['homepage_uri'] = spec.homepage
21
+ spec.metadata['source_code_uri'] = 'https://github.com/ChaelCodes/jekyll-twitch'
19
22
  # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
20
23
 
21
24
  # Specify which files should be added to the gem when it is released.
22
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
26
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
27
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
28
  end
26
- spec.bindir = "exe"
29
+ spec.bindir = 'exe'
27
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
- spec.require_paths = ["lib"]
31
+ spec.require_paths = ['lib']
29
32
  spec.add_dependency 'jekyll'
30
33
  end
data/lib/jekyll-twitch.rb CHANGED
@@ -1,7 +1,10 @@
1
- require "jekyll-twitch/version"
2
- require "jekyll-twitch/twitch_tag"
1
+ # frozen_string_literal: true
2
+
3
+ require 'jekyll-twitch/version'
4
+ require 'jekyll-twitch/twitch_tag'
3
5
 
4
6
  module Jekyll
7
+ # This is the module for Twitch stuff for Jekyll
5
8
  module Twitch
6
9
  end
7
10
  end
@@ -1,39 +1,68 @@
1
- require "jekyll"
1
+ # frozen_string_literal: true
2
2
 
3
+ require 'jekyll'
4
+
5
+ # These are all for Jekyll.
3
6
  module Jekyll
7
+ # This is a liquid tag that embed Twitch Clips
8
+ # input is a url
4
9
  class TwitchTag < Liquid::Tag
5
10
  def initialize(_tag_name, content, _tokens)
6
11
  super
7
- @parsed_url = Jekyll::TwitchTag.parse_twitch_url content
12
+ @parsed_url = Jekyll::TwitchTag.parse_twitch_url content.strip
8
13
  end
9
14
 
10
15
  def render(context)
11
16
  host = Jekyll::TwitchTag.site_url context
12
- %Q(<iframe
17
+ %(<iframe
13
18
  src="#{@parsed_url}&parent=#{host}"
14
- height="720"
15
- width="1280"
19
+ height="100%"
20
+ width="100%"
16
21
  allowfullscreen="true">
17
22
  </iframe>)
18
23
  end
19
24
 
20
25
  # Class Methods
26
+ def self.channel_url(url)
27
+ slug = url.match %r{(?<no>twitch.tv/)(?<channel>.+)/?\??}
28
+ "https://player.twitch.tv/?channel=#{slug[:channel]}&autoplay=false"
29
+ end
30
+
31
+ def self.clip_url(url)
32
+ slug = url.match %r{(?<no>/clip/)(?<clip>.+)/?\??}
33
+ "https://clips.twitch.tv/embed?autoplay=false&clip=#{slug[:clip]}"
34
+ end
35
+
36
+ def self.collection_url(url)
37
+ slug = url.match %r{(?<no>/collections/)(?<collection>.+)/?\??}
38
+ "https://player.twitch.tv/?collection=#{slug[:collection]}&autoplay=false"
39
+ end
40
+
21
41
  def self.hostname(url)
22
- matches = url.match %r{\A(https?://)?(?<host>[A-z.]+)(:\d+)?}
42
+ matches = url.match %r{\A(?<safe>https?://)?(?<host>[A-z.]+)(?<port>:\d+)?}
23
43
  matches[:host]
24
44
  end
25
45
 
26
46
  def self.parse_twitch_url(url)
27
- url = url.strip
28
47
  case url
29
48
  when %r{/clip/}
30
- slug = url.match %r{(?<no>/clip/)(?<clip>.+)}
31
- "https://clips.twitch.tv/embed?autoplay=false&clip=#{slug[:clip]}"
49
+ clip_url url
50
+ when %r{/videos/}
51
+ video_url url
52
+ when %r{/collections/}
53
+ collection_url url
54
+ else
55
+ channel_url url
32
56
  end
33
57
  end
34
58
 
35
59
  def self.site_url(context)
36
- self.hostname(context.registers[:site].config['url'])
60
+ hostname(context.registers[:site].config['url'])
61
+ end
62
+
63
+ def self.video_url(url)
64
+ slug = url.match %r{(?<no>/videos/)(?<vod>\d+)}
65
+ "https://player.twitch.tv/?video=#{slug[:vod]}&autoplay=false"
37
66
  end
38
67
  end
39
68
 
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Jekyll
2
4
  module Twitch
3
- VERSION = "0.2.0"
5
+ VERSION = '1.0.0'
4
6
  end
5
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-twitch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rachael Wright-Munn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-28 00:00:00.000000000 Z
11
+ date: 2021-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -32,8 +32,15 @@ executables: []
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - ".github/workflows/checks.yml"
36
+ - ".github/workflows/deploy-demo.yml"
35
37
  - ".gitignore"
38
+ - ".jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910"
39
+ - ".jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/63/7e252fa8460c2278df772e6dfbf4934329e2f03a9174070b70d0883886b435"
40
+ - ".jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
41
+ - ".jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fd/aa4200cef2544ec568b25970b3a49cf9b4f3d7015485506ccda914caf9c5b9"
36
42
  - ".rspec"
43
+ - ".rubocop.yml"
37
44
  - CODE_OF_CONDUCT.md
38
45
  - Gemfile
39
46
  - Gemfile.lock
@@ -42,6 +49,17 @@ files:
42
49
  - Rakefile
43
50
  - bin/console
44
51
  - bin/setup
52
+ - docs/.gitignore
53
+ - docs/404.html
54
+ - docs/Gemfile
55
+ - docs/Gemfile.lock
56
+ - docs/_config.yml
57
+ - docs/_posts/2021-04-23-Version-1-Released.md
58
+ - docs/channel.md
59
+ - docs/clips.md
60
+ - docs/collection.md
61
+ - docs/index.markdown
62
+ - docs/videos.md
45
63
  - jekyll-twitch.gemspec
46
64
  - lib/jekyll-twitch.rb
47
65
  - lib/jekyll-twitch/twitch_tag.rb
@@ -60,7 +78,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
78
  requirements:
61
79
  - - ">="
62
80
  - !ruby/object:Gem::Version
63
- version: 2.3.0
81
+ version: 2.4.0
64
82
  required_rubygems_version: !ruby/object:Gem::Requirement
65
83
  requirements:
66
84
  - - ">="