jekyll-wns 3.1.4 β 4.0.0
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/README.md +58 -2
- data/jekyll-wns.gemspec +1 -1
- data/js/youtube.js +6 -0
- data/lib/jekyll-wns.rb +4 -0
- data/lib/jekyll-wns/assets/abbreviations.rb +17 -8
- data/lib/jekyll-wns/assets/label_unicode.rb +19 -0
- data/lib/jekyll-wns/assets/quads.rb +8 -2
- data/lib/jekyll-wns/assets/ruby_tag.rb +21 -0
- data/lib/jekyll-wns/assets/scene_break_tag.rb +1 -1
- data/lib/jekyll-wns/assets/youtube_tag.rb +30 -0
- data/lib/jekyll-wns/register_hooks.rb +14 -4
- data/lib/jekyll-wns/register_tags.rb +2 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15e91d37d865ed42046e37f966254d7677a1c4cbb6f1bc0aed66563db24957ca
|
4
|
+
data.tar.gz: e3c28d73df0d986bc40664ad0cf4108bcc4c0cff2e1aa26daa33eda68890282e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 139ff2525f0a3b3895a9ef82a7671cfe7978a960f791b107718e3726827c1556bd8f39179c7815ecf4e0df4f09aa5add4a40fc39c2cc96c5295cabbac0f35f06
|
7
|
+
data.tar.gz: '0197f8cf54e680d458544df89abc4272b3b85db50bbbc2a8ba9889b9e61e76b46587a8fa805d81f39548df9c0471ea556dd065eed385e5c6fc137b6328faa1fb'
|
data/README.md
CHANGED
@@ -4,11 +4,11 @@ A collection of filters, tags and hooks that I use on my pages.
|
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
1.
|
7
|
+
1. Run Μ bundle add jekyll-wns` and
|
8
8
|
2. Add the following to your site's `_config.yml`:
|
9
9
|
|
10
10
|
```yml
|
11
|
-
|
11
|
+
plugins:
|
12
12
|
- jekyll-wns
|
13
13
|
```
|
14
14
|
|
@@ -76,6 +76,62 @@ gems:
|
|
76
76
|
<p style="text-align:center" data-mce-style="text-align:center">πΏπΎπΏπΎπΏπΎπΏπΎ
|
77
77
|
```
|
78
78
|
|
79
|
+
#### Ruby Annotations
|
80
|
+
|
81
|
+
```liquid
|
82
|
+
{% ruby b|t %}
|
83
|
+
|
84
|
+
{% ruby a#b|t#s %}
|
85
|
+
|
86
|
+
{% ruby a#b#c|x#y#z %}
|
87
|
+
```
|
88
|
+
|
89
|
+
```html
|
90
|
+
<p><ruby><span class="rb first last" aria-hidden="true">b</span><rp>(</rp><rt first="" last="">t</rt><rp>)</rp></ruby></p>
|
91
|
+
|
92
|
+
<p><ruby><span class="rb first" aria-hidden="true">a</span><rp>(</rp><rt first="">t</rt><rp>)</rp><span class="rb last" aria-hidden="true">b</span><rp>(</rp><rt last="">s</rt><rp>)</rp></ruby></p>
|
93
|
+
|
94
|
+
<p><ruby><span class="rb first" aria-hidden="true">a</span><rp>(</rp><rt first="">x</rt><rp>)</rp><span class="rb" aria-hidden="true">b</span><rp>(</rp><rt>y</rt><rp>)</rp><span class="rb last" aria-hidden="true">c</span><rp>(</rp><rt last="">z</rt><rp>)</rp></ruby></p>
|
95
|
+
```
|
96
|
+
|
97
|
+
#### YouTube Embed
|
98
|
+
|
99
|
+
The following snippet should be integrated into your site for the tag to properly work:
|
100
|
+
|
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
|
+
}
|
107
|
+
}
|
108
|
+
```
|
109
|
+
|
110
|
+
```liquid
|
111
|
+
{% youtube U6xJfP7-HCc|Base 12 β Numberphile %}
|
112
|
+
```
|
113
|
+
|
114
|
+
```html
|
115
|
+
<div class="youtube" data-videoid="youtube-U6xJfP7-HCc">
|
116
|
+
<a class="btn btn-lg btn-block btn-primary" href="https://youtu.be/U6xJfP7-HCc" target="_blank" rel="noopener">
|
117
|
+
Watch βBase 12 β Numberphileβ on YouTube
|
118
|
+
</a>
|
119
|
+
<a class="btn btn-lg btn-block btn-primary" href="javascript:loadYouTube();">
|
120
|
+
Load YouTube Video (3rd party script)
|
121
|
+
</a>
|
122
|
+
</div>
|
123
|
+
<script id="youtube-U6xJfP7-HCc" type="text/html">
|
124
|
+
<div style='position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;'>
|
125
|
+
<iframe
|
126
|
+
style='position: absolute; top: 0; left: 0; width: 100%; height: 100%;'
|
127
|
+
src='https://www.youtube-nocookie.com/embed/U6xJfP7-HCc?rel=0'
|
128
|
+
frameborder='0'
|
129
|
+
allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
|
130
|
+
allowfullscreen></iframe>
|
131
|
+
</div>
|
132
|
+
</script>
|
133
|
+
```
|
134
|
+
|
79
135
|
### Hooks
|
80
136
|
|
81
137
|
#### Automatic replacement of spaces to en quads after each sentence
|
data/jekyll-wns.gemspec
CHANGED
data/js/youtube.js
ADDED
data/lib/jekyll-wns.rb
CHANGED
@@ -2,12 +2,16 @@ 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
9
|
require_relative 'jekyll-wns/assets/file_properties_filter'
|
9
10
|
require_relative 'jekyll-wns/assets/quads_filter'
|
11
|
+
|
12
|
+
require_relative 'jekyll-wns/assets/ruby_tag'
|
10
13
|
require_relative 'jekyll-wns/assets/scene_break_tag'
|
14
|
+
require_relative 'jekyll-wns/assets/youtube_tag'
|
11
15
|
|
12
16
|
require_relative 'jekyll-wns/register_filters'
|
13
17
|
require_relative 'jekyll-wns/register_hooks'
|
@@ -1,19 +1,28 @@
|
|
1
1
|
module WNS
|
2
2
|
module Abbreviations
|
3
|
-
|
4
|
-
|
5
|
-
CLEANUP_EXPRESSION = /, ([a-zA-Z]\.&)/
|
6
|
-
CLEANUP_REPLACEMENT = ", \\1"
|
3
|
+
THREE_LETTER_EXPRESSION = /([a-zA-Z]\.)([a-zA-Z]\.)([a-zA-Z]\.)(,|) /
|
4
|
+
THREE_LETTER_REPLACEMENT = "\\1 \\2 \\3\\4 "
|
7
5
|
|
8
|
-
|
6
|
+
TWO_LETTER_EXPRESSION = /([a-zA-Z]\.)([a-zA-Z]\.)(,|) /
|
7
|
+
TWO_LETTER_REPLACEMENT = "\\1 \\2\\3 "
|
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 "
|
11
|
+
|
12
|
+
PREFIX_EXPRESSION = /, ([a-zA-Z]\.&)/
|
13
|
+
PREFIX_REPLACEMENT = ", \\1"
|
14
|
+
|
15
|
+
def self.enabled?(doc)
|
9
16
|
wns = doc.site.config["wns"] || {}
|
10
17
|
wns["abbreviations"] || false
|
11
18
|
end
|
12
19
|
|
13
|
-
def replace_abbreviations!(doc)
|
20
|
+
def self.replace_abbreviations!(doc)
|
14
21
|
if Abbreviations::enabled?(doc)
|
15
|
-
doc.content = doc.content.gsub(Abbreviations::
|
16
|
-
doc.content = doc.content.gsub(Abbreviations::
|
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)
|
24
|
+
doc.content = doc.content.gsub(Abbreviations::TITLE_EXPRESSION, Abbreviations::TITLE_REPLACEMENT)
|
25
|
+
doc.content = doc.content.gsub(Abbreviations::PREFIX_EXPRESSION, Abbreviations::PREFIX_REPLACEMENT)
|
17
26
|
end
|
18
27
|
end
|
19
28
|
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(LabelUnicode::SYMBOLS[i], "<span aria-label='#{LabelUnicode::READINGS[i]}'>\\1</span>")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -5,14 +5,20 @@ module WNS
|
|
5
5
|
CLEANUP_EXPRESSION = / ( |> )*/
|
6
6
|
CLEANUP_REPLACEMENT = " "
|
7
7
|
|
8
|
-
def enabled?(doc)
|
8
|
+
def self.enabled?(doc)
|
9
9
|
wns = doc.site.config["wns"] || {}
|
10
10
|
quads = wns["quads"] || false
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def self.insert_quads(input)
|
14
14
|
output = input.gsub(MAIN_EXPRESSION, MAIN_REPLACEMENT)
|
15
15
|
output = output.gsub(CLEANUP_EXPRESSION, CLEANUP_REPLACEMENT)
|
16
16
|
end
|
17
|
+
|
18
|
+
def self.insert_quads_into_document!(doc)
|
19
|
+
if Quads::enabled?(doc)
|
20
|
+
doc.content = insert_quads doc.content
|
21
|
+
end
|
22
|
+
end
|
17
23
|
end
|
18
24
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module WNS
|
2
|
+
class RubyTag < Liquid::Tag
|
3
|
+
def initialize(tag_name, text, tokens)
|
4
|
+
super
|
5
|
+
|
6
|
+
@text = text.strip!.split("|")
|
7
|
+
end
|
8
|
+
|
9
|
+
def render(context)
|
10
|
+
base = @text[0].split("#")
|
11
|
+
text = @text[1].split("#")
|
12
|
+
output = "<ruby>"
|
13
|
+
i = 0
|
14
|
+
while i < base.length()
|
15
|
+
output += "<span class='rb" + (i == 0 ? " first" : "") + (i == base.length() - 1 ? " last" : "") + "' aria-hidden='true'>#{base[i]}</span><rp>(</rp><rt" + (i == 0 ? " first" : "") + (i == base.length() - 1 ? " last" : "") + ">#{text[i]}</rt><rp>)</rp>"
|
16
|
+
i += 1
|
17
|
+
end
|
18
|
+
output += "</ruby>"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -13,7 +13,7 @@ module WNS
|
|
13
13
|
when "wave"
|
14
14
|
'<p style="text-align:center;letter-spacing:-.13em" data-mce-style="text-align:center;letter-spacing:-.13em">β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β</p>'
|
15
15
|
when "wall"
|
16
|
-
'<p style="text-align:center;letter-spacing:-.2em" data-mce-style="text-align:center;letter-spacing:-.2em"
|
16
|
+
'<p style="text-align:center;letter-spacing:-.2em" data-mce-style="text-align:center;letter-spacing:-.2em">ββββββββββββββββββββ</p>'
|
17
17
|
else
|
18
18
|
'<p style="text-align:center" data-mce-style="text-align:center">πΏπΎπΏπΎπΏπΎπΏπΎπΏπΎπΏπΎπΏπΎπΏ</p>'
|
19
19
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module WNS
|
2
|
+
class YoutubeTag < Liquid::Tag
|
3
|
+
def initialize(tag_name, text, tokens)
|
4
|
+
super
|
5
|
+
@text = text.strip!.split("|")
|
6
|
+
end
|
7
|
+
|
8
|
+
def render(context)
|
9
|
+
"<div class='youtube' data-videoid='youtube-" + @text[0] + "'>
|
10
|
+
<a class='btn btn-lg btn-block btn-primary' href='https://youtu.be/" + @text[0] + "' target='_blank' rel='noopener'>
|
11
|
+
Watch β" + @text[1] + "β on YouTube
|
12
|
+
</a>
|
13
|
+
<a class='btn btn-lg btn-block btn-primary'
|
14
|
+
href='javascript:loadYouTube();'>
|
15
|
+
Load YouTube Video (3rd party script)
|
16
|
+
</a>
|
17
|
+
</div>
|
18
|
+
<script id='youtube-" + @text[0] + "' type='text/html'>
|
19
|
+
<div style='position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;'>
|
20
|
+
<iframe
|
21
|
+
style='position: absolute; top: 0; left: 0; width: 100%; height: 100%;'
|
22
|
+
src='https://www.youtube-nocookie.com/embed/" + @text[0] + "?rel=0'
|
23
|
+
frameborder='0'
|
24
|
+
allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
|
25
|
+
allowfullscreen></iframe>
|
26
|
+
</div>
|
27
|
+
</script>"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,11 +1,21 @@
|
|
1
|
-
Jekyll::Hooks.register :
|
2
|
-
|
1
|
+
Jekyll::Hooks.register :pages, :pre_render do |document|
|
2
|
+
if document.path =~ /(.md|.html)/
|
3
|
+
WNS::Quads::insert_quads_into_document! document
|
4
|
+
end
|
3
5
|
end
|
4
6
|
|
5
|
-
Jekyll::Hooks.register :pages, :
|
6
|
-
|
7
|
+
Jekyll::Hooks.register :pages, :post_render do |document|
|
8
|
+
if document.path =~ /(.md|.html)/
|
9
|
+
WNS::Abbreviations::replace_abbreviations! document
|
10
|
+
WNS::LabelUnicode::label_unicode! document
|
11
|
+
end
|
7
12
|
end
|
8
13
|
|
9
14
|
Jekyll::Hooks.register :posts, :pre_render do |document|
|
15
|
+
WNS::Quads::insert_quads_into_document! document
|
16
|
+
end
|
17
|
+
|
18
|
+
Jekyll::Hooks.register :posts, :post_render do |document|
|
10
19
|
WNS::Abbreviations::replace_abbreviations! document
|
20
|
+
WNS::LabelUnicode::label_unicode! document
|
11
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-wns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
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-
|
11
|
+
date: 2021-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -23,14 +23,18 @@ files:
|
|
23
23
|
- LICENSE
|
24
24
|
- README.md
|
25
25
|
- jekyll-wns.gemspec
|
26
|
+
- js/youtube.js
|
26
27
|
- lib/.ruby-version
|
27
28
|
- lib/jekyll-wns.rb
|
28
29
|
- lib/jekyll-wns/assets/abbreviations.rb
|
29
30
|
- lib/jekyll-wns/assets/digest_filters.rb
|
30
31
|
- lib/jekyll-wns/assets/file_properties_filter.rb
|
32
|
+
- lib/jekyll-wns/assets/label_unicode.rb
|
31
33
|
- lib/jekyll-wns/assets/quads.rb
|
32
34
|
- lib/jekyll-wns/assets/quads_filter.rb
|
35
|
+
- lib/jekyll-wns/assets/ruby_tag.rb
|
33
36
|
- lib/jekyll-wns/assets/scene_break_tag.rb
|
37
|
+
- lib/jekyll-wns/assets/youtube_tag.rb
|
34
38
|
- lib/jekyll-wns/register_filters.rb
|
35
39
|
- lib/jekyll-wns/register_hooks.rb
|
36
40
|
- lib/jekyll-wns/register_tags.rb
|