jekyll-wns 4.0.0 → 4.1.3

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
  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