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 +4 -4
- data/Gemfile +2 -0
- data/README.md +25 -5
- data/jekyll-wns.gemspec +3 -1
- data/js/youtube.js +6 -5
- data/lib/jekyll-wns/assets/abbreviations.rb +9 -9
- data/lib/jekyll-wns/assets/file_property_filters.rb +39 -0
- data/lib/jekyll-wns/assets/label_unicode.rb +1 -1
- data/lib/jekyll-wns/assets/scene_break_tag.rb +4 -6
- data/lib/jekyll-wns/assets/youtube_tag.rb +3 -4
- data/lib/jekyll-wns/register_filters.rb +1 -1
- data/lib/jekyll-wns/register_hooks.rb +6 -4
- data/lib/jekyll-wns.rb +1 -1
- metadata +18 -5
- data/lib/.ruby-version +0 -1
- data/lib/jekyll-wns/assets/file_properties_filter.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f642384eee2481fe29a4e457158baef1269233ad002977eb901905a6de935bb6
|
4
|
+
data.tar.gz: 768b7e9e1d03418e8ce29db6170ddff5d87d20908716a535a171a7790751a0ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 250d2367ac3714527f597eab8b3e6e85580276d437d501dbdfc8a43e28a604c590a28d31075d8315379fec41bae72b5a549ce811998765a0d97d2d429e54edcf
|
7
|
+
data.tar.gz: a71808669a1e27218dc52f354120a93477c0ba0b4215a04d975ecf8b67196ccd7182c82514703cae1d8d2b2b3d1fa8f3b3bdee1b8edf58492bcbb6aab703338d
|
data/Gemfile
CHANGED
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
|
-
|
104
|
-
|
105
|
-
|
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, e. \g., 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.
|
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
|
-
|
3
|
-
|
4
|
-
|
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
|
-
|
4
|
-
|
3
|
+
INNER_DOTS_EXPRESSION = /([a-zA-Z]\.)([a-zA-Z]\.)([a-zA-Z]\.|)([a-zA-Z]\.|)([a-zA-Z]\.|)(,|) /
|
4
|
+
INNER_DOTS_REPLACEMENT = "\\1 \\2 \\3 \\4 \\5 \\6 "
|
5
5
|
|
6
|
-
|
7
|
-
|
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 "
|
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 "
|
11
8
|
|
12
9
|
PREFIX_EXPRESSION = /, ([a-zA-Z]\.&)/
|
13
10
|
PREFIX_REPLACEMENT = ", \\1"
|
14
11
|
|
12
|
+
COLLAPSE_SPACES_EXPRESSION = /( )*( |,)/
|
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::
|
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"
|
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'
|
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='
|
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,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
|
-
|
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
|
-
|
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/
|
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.
|
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-
|
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/
|
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
|