jekyll-wns 4.0.0 → 4.1.3

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: 15e91d37d865ed42046e37f966254d7677a1c4cbb6f1bc0aed66563db24957ca
4
- data.tar.gz: e3c28d73df0d986bc40664ad0cf4108bcc4c0cff2e1aa26daa33eda68890282e
3
+ metadata.gz: f642384eee2481fe29a4e457158baef1269233ad002977eb901905a6de935bb6
4
+ data.tar.gz: 768b7e9e1d03418e8ce29db6170ddff5d87d20908716a535a171a7790751a0ea
5
5
  SHA512:
6
- metadata.gz: 139ff2525f0a3b3895a9ef82a7671cfe7978a960f791b107718e3726827c1556bd8f39179c7815ecf4e0df4f09aa5add4a40fc39c2cc96c5295cabbac0f35f06
7
- data.tar.gz: '0197f8cf54e680d458544df89abc4272b3b85db50bbbc2a8ba9889b9e61e76b46587a8fa805d81f39548df9c0471ea556dd065eed385e5c6fc137b6328faa1fb'
6
+ metadata.gz: 250d2367ac3714527f597eab8b3e6e85580276d437d501dbdfc8a43e28a604c590a28d31075d8315379fec41bae72b5a549ce811998765a0d97d2d429e54edcf
7
+ data.tar.gz: a71808669a1e27218dc52f354120a93477c0ba0b4215a04d975ecf8b67196ccd7182c82514703cae1d8d2b2b3d1fa8f3b3bdee1b8edf58492bcbb6aab703338d
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
+
5
+ gem "ruby-mp3info", "~> 0.8.10"
data/README.md CHANGED
@@ -99,12 +99,13 @@ plugins:
99
99
  The following snippet should be integrated into your site for the tag to properly work:
100
100
 
101
101
  ```javascript
102
- function loadYouTube() {
103
- var videos = d.getElementsByClassName('youtube');
104
- for (var i = 0; i < videos.length; i++) {
105
- videos[i].innerHTML = d.getElementById(videos[i].getAttribute('data-videoid')).innerHTML;
106
- }
102
+ function loadYouTube(e = null) {
103
+ if (e == null) return;
104
+ var i = e.target.getAttribute('data-videoid');
105
+ d.getElementById(i).innerHTML = d.getElementById('yt-' + i).innerHTML
107
106
  }
107
+
108
+ $('.youtube a:last-child').on('click', loadYouTube);
108
109
  ```
109
110
 
110
111
  ```liquid
@@ -164,3 +165,22 @@ With `abbreviations: true`:
164
165
  ```html
165
166
  … tools,&nbsp;e.&#8239;\g.,&nbsp;hammer,…
166
167
  ```
168
+
169
+ ### Automatic labelling of Unicode Characters
170
+
171
+ Some assistive technologies don't play nice with Unicode character, this should improve thing by adding aria-labels spans to wherever necessary.
172
+
173
+ To enable this, add this to your `_config.yml`:
174
+
175
+ ```yml
176
+ wns:
177
+ label_unicode: true
178
+ ```
179
+
180
+ ```markdown
181
+ Hyda-Ⅳ
182
+ ```
183
+
184
+ ```html
185
+ Hyda-<span aria-label="4">Ⅳ</span>
186
+ ```
data/jekyll-wns.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "jekyll-wns"
5
- spec.version = "4.0.0"
5
+ spec.version = "4.1.3"
6
6
  spec.authors = ["Thai Chung"]
7
7
  spec.email = ["mail@0xReki.de"]
8
8
  spec.summary = "Collection of Filters, Tags and Hooks I use."
@@ -10,4 +10,6 @@ Gem::Specification.new do |spec|
10
10
  spec.licenses = "MIT"
11
11
 
12
12
  spec.files = `git ls-files -z`.split("\x0")
13
+
14
+ spec.add_dependency("ruby-mp3info", "~> 0.8.10")
13
15
  end
data/js/youtube.js CHANGED
@@ -1,6 +1,7 @@
1
- function loadYouTube() {
2
- var videos = d.getElementsByClassName('youtube');
3
- for (var i = 0; i < videos.length; i++) {
4
- videos[i].innerHTML = d.getElementById(videos[i].getAttribute('data-videoid')).innerHTML;
5
- }
1
+ function loadYouTube(e = null) {
2
+ if (e == null) return;
3
+ var i = e.target.getAttribute('data-videoid');
4
+ d.getElementById(i).innerHTML = d.getElementById('yt-' + i).innerHTML
6
5
  }
6
+
7
+ $('.youtube a:last-child').on('click', loadYouTube);
@@ -1,17 +1,17 @@
1
1
  module WNS
2
2
  module Abbreviations
3
- THREE_LETTER_EXPRESSION = /([a-zA-Z]\.)([a-zA-Z]\.)([a-zA-Z]\.)(,|) /
4
- THREE_LETTER_REPLACEMENT = "\\1&#8239;\\2&#8239;\\3\\4&nbsp;"
3
+ INNER_DOTS_EXPRESSION = /([a-zA-Z]\.)([a-zA-Z]\.)([a-zA-Z]\.|)([a-zA-Z]\.|)([a-zA-Z]\.|)(,|) /
4
+ INNER_DOTS_REPLACEMENT = "\\1&#8239;\\2&#8239;\\3&#8239;\\4&#8239;\\5&#8239;\\6&nbsp;"
5
5
 
6
- TWO_LETTER_EXPRESSION = /([a-zA-Z]\.)([a-zA-Z]\.)(,|) /
7
- TWO_LETTER_REPLACEMENT = "\\1&#8239;\\2\\3&nbsp;"
8
-
9
- TITLE_EXPRESSION = /(Mr|Ms|Mrs|Messrs|Mmes|Msgr|Prof|Rev|Dr|Sr|St|[A-Z][a-z]|[A-Z][a-z][a-z])(\.|)(,|) /
10
- TITLE_REPLACEMENT = "\\1\\2\\3&nbsp;"
6
+ TITLE_EXPRESSION = /(Mr|Ms|Mrs|Messrs|Mmes|Msgr|Prof|Rev|Dr|Sr|St|[A-Z][a-z]|[A-Z][a-z][a-z])(\.|\.,|,) /
7
+ TITLE_REPLACEMENT = "\\1\\2&nbsp;"
11
8
 
12
9
  PREFIX_EXPRESSION = /, ([a-zA-Z]\.&)/
13
10
  PREFIX_REPLACEMENT = ",&nbsp;\\1"
14
11
 
12
+ COLLAPSE_SPACES_EXPRESSION = /(&#8239;)*(&nbsp;|,)/
13
+ COLLAPSE_SPACES_REPLACEMENT = "\\2"
14
+
15
15
  def self.enabled?(doc)
16
16
  wns = doc.site.config["wns"] || {}
17
17
  wns["abbreviations"] || false
@@ -19,10 +19,10 @@ module WNS
19
19
 
20
20
  def self.replace_abbreviations!(doc)
21
21
  if Abbreviations::enabled?(doc)
22
- doc.content = doc.content.gsub(Abbreviations::THREE_LETTER_EXPRESSION, Abbreviations::THREE_LETTER_REPLACEMENT)
23
- doc.content = doc.content.gsub(Abbreviations::TWO_LETTER_EXPRESSION, Abbreviations::TWO_LETTER_REPLACEMENT)
22
+ doc.content = doc.content.gsub(Abbreviations::INNER_DOTS_EXPRESSION, Abbreviations::INNER_DOTS_REPLACEMENT)
24
23
  doc.content = doc.content.gsub(Abbreviations::TITLE_EXPRESSION, Abbreviations::TITLE_REPLACEMENT)
25
24
  doc.content = doc.content.gsub(Abbreviations::PREFIX_EXPRESSION, Abbreviations::PREFIX_REPLACEMENT)
25
+ doc.content = doc.content.gsub(Abbreviations::COLLAPSE_SPACES_EXPRESSION, Abbreviations::COLLAPSE_SPACES_REPLACEMENT)
26
26
  end
27
27
  end
28
28
  end
@@ -0,0 +1,39 @@
1
+ require 'mp3info'
2
+
3
+ module WNS
4
+ module FilePropertyFilters
5
+ def file_size(path)
6
+ source = Jekyll.configuration({})['source']
7
+
8
+ unless source.empty?
9
+ source += '/'
10
+ else
11
+ source = ''
12
+ end
13
+ full_path = source + path
14
+
15
+ unless path.nil?
16
+ File.size full_path
17
+ else
18
+ 0
19
+ end
20
+ end
21
+
22
+ def mp3_duration(path)
23
+ source = Jekyll.configuration({})['source'] || ''
24
+
25
+ unless source.empty?
26
+ source += '/'
27
+ else
28
+ source = ''
29
+ end
30
+ full_path = source + path
31
+
32
+ unless path.nil?
33
+ Mp3Info.open(full_path).length.to_i
34
+ else
35
+ 0
36
+ end
37
+ end
38
+ end
39
+ end
@@ -11,7 +11,7 @@ module WNS
11
11
  def self.label_unicode!(doc)
12
12
  if LabelUnicode::enabled?(doc)
13
13
  for i in (0..(LabelUnicode::SYMBOLS.length()) - 1) do
14
- doc.content = doc.content.gsub(LabelUnicode::SYMBOLS[i], "<span aria-label='#{LabelUnicode::READINGS[i]}'>\\1</span>")
14
+ doc.content = doc.content.gsub(Regexp.new("([\\-A-Za-z0-9]*|)#{LabelUnicode::SYMBOLS[i].source}([\\-A-Za-z0-9]*|)"), "<span aria-label='\\1#{LabelUnicode::READINGS[i]}\\3'>\\1\\2\\3</span>")
15
15
  end
16
16
  end
17
17
  end
@@ -9,16 +9,14 @@ module WNS
9
9
  def render(context)
10
10
  case @text
11
11
  when "leaves"
12
- '<p style="text-align:center" data-mce-style="text-align:center">🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒</p>'
12
+ '<p style="text-align:center" data-mce-style="text-align:center" aria-hidden="true">🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒</p>'
13
13
  when "wave"
14
- '<p style="text-align:center;letter-spacing:-.13em" data-mce-style="text-align:center;letter-spacing:-.13em">◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠‏</p>'
14
+ '<p style="text-align:center;letter-spacing:-.13em" data-mce-style="text-align:center;letter-spacing:-.13em" aria-hidden="true">◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠</p>'
15
15
  when "wall"
16
- '<p style="text-align:center;letter-spacing:-.2em" data-mce-style="text-align:center;letter-spacing:-.2em">⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍</p>'
16
+ '<p style="text-align:center;letter-spacing:-.2em" data-mce-style="text-align:center;letter-spacing:-.2em" aria-hidden="true">⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍⚎⚍</p>'
17
17
  else
18
- '<p style="text-align:center" data-mce-style="text-align:center">🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿</p>'
18
+ '<p style="text-align:center" data-mce-style="text-align:center" aria-hidden="true">🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿</p>'
19
19
  end
20
20
  end
21
21
  end
22
22
  end
23
-
24
-
@@ -6,16 +6,15 @@ module WNS
6
6
  end
7
7
 
8
8
  def render(context)
9
- "<div class='youtube' data-videoid='youtube-" + @text[0] + "'>
9
+ "<div class='youtube' id='" + @text[0] + "'>
10
10
  <a class='btn btn-lg btn-block btn-primary' href='https://youtu.be/" + @text[0] + "' target='_blank' rel='noopener'>
11
11
  Watch “" + @text[1] + "” on YouTube
12
12
  </a>
13
- <a class='btn btn-lg btn-block btn-primary'
14
- href='javascript:loadYouTube();'>
13
+ <a class='btn btn-lg btn-block btn-primary youtube-load-btn' data-videoid='" + @text[0] + "'>
15
14
  Load YouTube Video (3rd party script)
16
15
  </a>
17
16
  </div>
18
- <script id='youtube-" + @text[0] + "' type='text/html'>
17
+ <script id='yt-" + @text[0] + "' type='text/html'>
19
18
  <div style='position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;'>
20
19
  <iframe
21
20
  style='position: absolute; top: 0; left: 0; width: 100%; height: 100%;'
@@ -1,3 +1,3 @@
1
1
  Liquid::Template.register_filter(WNS::QuadsFilter)
2
2
  Liquid::Template.register_filter(WNS::DigestFilters)
3
- Liquid::Template.register_filter(WNS::FilePropertiesFilter)
3
+ Liquid::Template.register_filter(WNS::FilePropertyFilters)
@@ -1,21 +1,23 @@
1
1
  Jekyll::Hooks.register :pages, :pre_render do |document|
2
2
  if document.path =~ /(.md|.html)/
3
+ WNS::Abbreviations::replace_abbreviations! document
4
+ WNS::LabelUnicode::label_unicode! document
3
5
  WNS::Quads::insert_quads_into_document! document
4
6
  end
5
7
  end
6
8
 
7
9
  Jekyll::Hooks.register :pages, :post_render do |document|
8
10
  if document.path =~ /(.md|.html)/
9
- WNS::Abbreviations::replace_abbreviations! document
10
- WNS::LabelUnicode::label_unicode! document
11
+ true
11
12
  end
12
13
  end
13
14
 
14
15
  Jekyll::Hooks.register :posts, :pre_render do |document|
16
+ WNS::Abbreviations::replace_abbreviations! document
17
+ WNS::LabelUnicode::label_unicode! document
15
18
  WNS::Quads::insert_quads_into_document! document
16
19
  end
17
20
 
18
21
  Jekyll::Hooks.register :posts, :post_render do |document|
19
- WNS::Abbreviations::replace_abbreviations! document
20
- WNS::LabelUnicode::label_unicode! document
22
+ true
21
23
  end
data/lib/jekyll-wns.rb CHANGED
@@ -6,7 +6,7 @@ require_relative 'jekyll-wns/assets/label_unicode'
6
6
  require_relative 'jekyll-wns/assets/quads'
7
7
 
8
8
  require_relative 'jekyll-wns/assets/digest_filters'
9
- require_relative 'jekyll-wns/assets/file_properties_filter'
9
+ require_relative 'jekyll-wns/assets/file_property_filters'
10
10
  require_relative 'jekyll-wns/assets/quads_filter'
11
11
 
12
12
  require_relative 'jekyll-wns/assets/ruby_tag'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-wns
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thai Chung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-15 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2021-11-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby-mp3info
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.10
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.10
13
27
  description:
14
28
  email:
15
29
  - mail@0xReki.de
@@ -24,11 +38,10 @@ files:
24
38
  - README.md
25
39
  - jekyll-wns.gemspec
26
40
  - js/youtube.js
27
- - lib/.ruby-version
28
41
  - lib/jekyll-wns.rb
29
42
  - lib/jekyll-wns/assets/abbreviations.rb
30
43
  - lib/jekyll-wns/assets/digest_filters.rb
31
- - lib/jekyll-wns/assets/file_properties_filter.rb
44
+ - lib/jekyll-wns/assets/file_property_filters.rb
32
45
  - lib/jekyll-wns/assets/label_unicode.rb
33
46
  - lib/jekyll-wns/assets/quads.rb
34
47
  - lib/jekyll-wns/assets/quads_filter.rb
data/lib/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.0.1
@@ -1,7 +0,0 @@
1
- module WNS
2
- module FilePropertiesFilter
3
- def file_size(path)
4
- File.size path
5
- end
6
- end
7
- end