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