jekyll-wns 3.4.0 → 4.1.1
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/.github/workflows/gem-push.yml +1 -1
- data/Gemfile +2 -0
- data/README.md +19 -0
- data/jekyll-wns.gemspec +3 -1
- data/lib/jekyll-wns.rb +2 -1
- data/lib/jekyll-wns/assets/abbreviations.rb +15 -9
- data/lib/jekyll-wns/assets/file_property_filters.rb +39 -0
- data/lib/jekyll-wns/assets/label_unicode.rb +19 -0
- data/lib/jekyll-wns/assets/quads.rb +3 -1
- 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 +15 -6
- metadata +19 -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: 39db2c4912ad62b82e3f5f8f35a2a1d8885e03ffc8a3f52ca993889e86985cbc
|
4
|
+
data.tar.gz: 2d7cdf9fcbf3b0c7dc99d3d264268a8b11a9d55b05219653c4b6bc92eb4acc35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e3c6c0297e48963461abc3884daec9f7cbf6ce0e98ae97e157396975cda4fc93d2c8ceecfda5a0b7408ae886a4da5e2ed83ce5f6874dd2fe57d39b5daee1eba
|
7
|
+
data.tar.gz: c834e2ed3707525e08cb4f517aeabaf8b7102972bd6f0e4138207cc86edbaf420c38f7d61e75bf3dec30362a37fd48fde78a1d2a678a50d321c97013db7e36ab
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -164,3 +164,22 @@ With `abbreviations: true`:
|
|
164
164
|
```html
|
165
165
|
… tools, e. \g., hammer,…
|
166
166
|
```
|
167
|
+
|
168
|
+
### Automatic labelling of Unicode Characters
|
169
|
+
|
170
|
+
Some assistive technologies don't play nice with Unicode character, this should improve thing by adding aria-labels spans to wherever necessary.
|
171
|
+
|
172
|
+
To enable this, add this to your `_config.yml`:
|
173
|
+
|
174
|
+
```yml
|
175
|
+
wns:
|
176
|
+
label_unicode: true
|
177
|
+
```
|
178
|
+
|
179
|
+
```markdown
|
180
|
+
Hyda-Ⅳ
|
181
|
+
```
|
182
|
+
|
183
|
+
```html
|
184
|
+
Hyda-<span aria-label="4">Ⅳ</span>
|
185
|
+
```
|
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 = "
|
5
|
+
spec.version = "4.1.1"
|
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/lib/jekyll-wns.rb
CHANGED
@@ -2,10 +2,11 @@ require 'liquid'
|
|
2
2
|
require 'jekyll'
|
3
3
|
|
4
4
|
require_relative 'jekyll-wns/assets/abbreviations'
|
5
|
+
require_relative 'jekyll-wns/assets/label_unicode'
|
5
6
|
require_relative 'jekyll-wns/assets/quads'
|
6
7
|
|
7
8
|
require_relative 'jekyll-wns/assets/digest_filters'
|
8
|
-
require_relative 'jekyll-wns/assets/
|
9
|
+
require_relative 'jekyll-wns/assets/file_property_filters'
|
9
10
|
require_relative 'jekyll-wns/assets/quads_filter'
|
10
11
|
|
11
12
|
require_relative 'jekyll-wns/assets/ruby_tag'
|
@@ -1,11 +1,16 @@
|
|
1
1
|
module WNS
|
2
2
|
module Abbreviations
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
+
|
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 "
|
8
|
+
|
9
|
+
PREFIX_EXPRESSION = /, ([a-zA-Z]\.&)/
|
10
|
+
PREFIX_REPLACEMENT = ", \\1"
|
11
|
+
|
12
|
+
COLLAPSE_SPACES_EXPRESSION = /( )*( |,)/
|
13
|
+
COLLAPSE_SPACES_REPLACEMENT = "\\2"
|
9
14
|
|
10
15
|
def self.enabled?(doc)
|
11
16
|
wns = doc.site.config["wns"] || {}
|
@@ -14,9 +19,10 @@ module WNS
|
|
14
19
|
|
15
20
|
def self.replace_abbreviations!(doc)
|
16
21
|
if Abbreviations::enabled?(doc)
|
17
|
-
doc.content = doc.content.gsub(Abbreviations::
|
18
|
-
doc.content = doc.content.gsub(Abbreviations::
|
19
|
-
doc.content = doc.content.gsub(Abbreviations::
|
22
|
+
doc.content = doc.content.gsub(Abbreviations::INNER_DOTS_EXPRESSION, Abbreviations::INNER_DOTS_REPLACEMENT)
|
23
|
+
doc.content = doc.content.gsub(Abbreviations::TITLE_EXPRESSION, Abbreviations::TITLE_REPLACEMENT)
|
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)
|
20
26
|
end
|
21
27
|
end
|
22
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
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module WNS
|
2
|
+
module LabelUnicode
|
3
|
+
SYMBOLS = [/(Ⅰ)/, /(Ⅱ)/, /(Ⅲ)/, /(Ⅳ)/, /(Ⅴ)/, /(Ⅵ)/, /(Ⅶ)/, /(Ⅷ)/, /(Ⅸ)/, /(Ⅹ)/]
|
4
|
+
READINGS = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
|
5
|
+
|
6
|
+
def self.enabled?(doc)
|
7
|
+
wns = doc.site.config["wns"] || {}
|
8
|
+
wns["label_unicode"] || false
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.label_unicode!(doc)
|
12
|
+
if LabelUnicode::enabled?(doc)
|
13
|
+
for i in (0..(LabelUnicode::SYMBOLS.length()) - 1) do
|
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
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -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,14 +1,23 @@
|
|
1
|
-
Jekyll::Hooks.register :
|
2
|
-
|
3
|
-
|
1
|
+
Jekyll::Hooks.register :pages, :pre_render do |document|
|
2
|
+
if document.path =~ /(.md|.html)/
|
3
|
+
WNS::Abbreviations::replace_abbreviations! document
|
4
|
+
WNS::LabelUnicode::label_unicode! document
|
5
|
+
WNS::Quads::insert_quads_into_document! document
|
6
|
+
end
|
4
7
|
end
|
5
8
|
|
6
|
-
Jekyll::Hooks.register :pages, :
|
7
|
-
|
8
|
-
|
9
|
+
Jekyll::Hooks.register :pages, :post_render do |document|
|
10
|
+
if document.path =~ /(.md|.html)/
|
11
|
+
true
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
Jekyll::Hooks.register :posts, :pre_render do |document|
|
12
16
|
WNS::Abbreviations::replace_abbreviations! document
|
17
|
+
WNS::LabelUnicode::label_unicode! document
|
13
18
|
WNS::Quads::insert_quads_into_document! document
|
14
19
|
end
|
20
|
+
|
21
|
+
Jekyll::Hooks.register :posts, :post_render do |document|
|
22
|
+
true
|
23
|
+
end
|
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
|
+
version: 4.1.1
|
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-07-01 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,11 @@ 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
|
45
|
+
- lib/jekyll-wns/assets/label_unicode.rb
|
32
46
|
- lib/jekyll-wns/assets/quads.rb
|
33
47
|
- lib/jekyll-wns/assets/quads_filter.rb
|
34
48
|
- lib/jekyll-wns/assets/ruby_tag.rb
|
data/lib/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3.0.1
|