jekyll-wns 3.1.4

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2fb3df193ce350ac996fb965a707f559129757461ab977c79fac36d3bb93c65d
4
+ data.tar.gz: 674a53eb066831f36a133492d5603b1f2fd3536de775bab6059b4e32083b0e45
5
+ SHA512:
6
+ metadata.gz: a919817f3c9f3f7fc8655f8e6cf1e3cd85f6b37219fef19ee5805fb2716ea1e9ffe7e3f7cbbdd3e40ac3fc90ac8c2756dd162e81680da1eb51e67117db469130
7
+ data.tar.gz: ec283dbe5c4dee47b38412edb829d112404ce2ac9286a9cc80019e9591f549c151fde25747f2f4ae26f32c19c94a1c29e519a43193013661f3dbabab226ed4f1
@@ -0,0 +1,43 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ tags: "*"
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ packages: write
14
+
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ - name: Set up Ruby 2.6
18
+ uses: actions/setup-ruby@v1
19
+ with:
20
+ ruby-version: 2.6.x
21
+
22
+ - name: Publish to GPR
23
+ run: |
24
+ mkdir -p $HOME/.gem
25
+ touch $HOME/.gem/credentials
26
+ chmod 0600 $HOME/.gem/credentials
27
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
28
+ gem build *.gemspec
29
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
30
+ env:
31
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
32
+ OWNER: ${{ github.repository_owner }}
33
+
34
+ - name: Publish to RubyGems
35
+ run: |
36
+ mkdir -p $HOME/.gem
37
+ touch $HOME/.gem/credentials
38
+ chmod 0600 $HOME/.gem/credentials
39
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
40
+ gem build *.gemspec
41
+ gem push *.gem
42
+ env:
43
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ Gemfile.lock
3
+ spec/dest
4
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 Thai “0xReki” Chung
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,110 @@
1
+ # jekyll-wns
2
+
3
+ A collection of filters, tags and hooks that I use on my pages.
4
+
5
+ ## Installation
6
+
7
+ 1. Add `gem "jekyll-wns", git: "https://github.com/0xReki/jekyll-wns.git, branch: "main"` to your site's Gemfile and run `bundle`
8
+ 2. Add the following to your site's `_config.yml`:
9
+
10
+ ```yml
11
+ gems:
12
+ - jekyll-wns
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ### Filters
18
+
19
+ #### Checksums
20
+
21
+ ```liquid
22
+ {{ site.content | sha384_64 }}
23
+ ```
24
+
25
+ ```liquid
26
+ {{ site.content | sha384 }}
27
+ ```
28
+
29
+ ```liquid
30
+ {{ site.content | sha256_64 }}
31
+ ```
32
+
33
+ ```liquid
34
+ {{ site.content | sha256 }}
35
+ ```
36
+
37
+ #### File Size
38
+
39
+ ```liquid
40
+ {{ site.content | file_size }}
41
+ ```
42
+
43
+ ### Tags
44
+
45
+ #### Scene Breaks
46
+
47
+ ```liquid
48
+ {% scene_break leaves %}
49
+ ```
50
+
51
+ ```html
52
+ <p style="text-align:center" data-mce-style="text-align:center">🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒</p>
53
+ ```
54
+
55
+ ```liquid
56
+ {% scene_break wave %}
57
+ ```
58
+
59
+ ```html
60
+ <p style="text-align:center;letter-spacing:-.13em" data-mce-style="text-align:center;letter-spacing:-.13em">◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠‏</p>
61
+ ```
62
+
63
+ ```liquid
64
+ {% scene_break wall %}
65
+ ```
66
+
67
+ ```html
68
+ <p style="text-align:center;letter-spacing:-.2em" data-mce-style="text-align:center;letter-spacing:-.2em">‎⚎‏⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎</p>
69
+ ```
70
+
71
+ ```liquid
72
+ {% scene_break %}
73
+ ```
74
+
75
+ ```html
76
+ <p style="text-align:center" data-mce-style="text-align:center">🙿🙾🙿🙾🙿🙾🙿🙾
77
+ ```
78
+
79
+ ### Hooks
80
+
81
+ #### Automatic replacement of spaces to en quads after each sentence
82
+
83
+ Assuming your files are each sentence in their own line,
84
+ just add this to your `_config.yml`:
85
+
86
+ ```yml
87
+ wns:
88
+ quads: true
89
+ ```
90
+
91
+ #### Automatic typographic handling of abbreviations
92
+
93
+ Just omit the space between the letters and use normal spaces, then add this to your `_config.yml`:
94
+
95
+ ```yml
96
+ wns:
97
+ abbrevations: true
98
+ ```
99
+
100
+ ##### Example
101
+
102
+ ```html
103
+ … tools, e.g., hammer,…
104
+ ```
105
+
106
+ With `abbreviations: true`:
107
+
108
+ ```html
109
+ … tools,&nbsp;e.&#8239;\g.,&nbsp;hammer,…
110
+ ```
@@ -0,0 +1,13 @@
1
+ # coding: utf-8
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "jekyll-wns"
5
+ spec.version = "3.1.4"
6
+ spec.authors = ["Thai Chung"]
7
+ spec.email = ["mail@0xReki.de"]
8
+ spec.summary = "Collection of Filters, Tags and Hooks I use."
9
+ spec.homepage = "https://github.com/0xReki/jekyll-wns"
10
+ spec.licenses = "MIT"
11
+
12
+ spec.files = `git ls-files -z`.split("\x0")
13
+ end
data/lib/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.0.1
data/lib/jekyll-wns.rb ADDED
@@ -0,0 +1,14 @@
1
+ require 'liquid'
2
+ require 'jekyll'
3
+
4
+ require_relative 'jekyll-wns/assets/abbreviations'
5
+ require_relative 'jekyll-wns/assets/quads'
6
+
7
+ require_relative 'jekyll-wns/assets/digest_filters'
8
+ require_relative 'jekyll-wns/assets/file_properties_filter'
9
+ require_relative 'jekyll-wns/assets/quads_filter'
10
+ require_relative 'jekyll-wns/assets/scene_break_tag'
11
+
12
+ require_relative 'jekyll-wns/register_filters'
13
+ require_relative 'jekyll-wns/register_hooks'
14
+ require_relative 'jekyll-wns/register_tags'
@@ -0,0 +1,20 @@
1
+ module WNS
2
+ module Abbreviations
3
+ MAIN_EXPRESSION = /([a-zA-Z])\.([a-zA-Z])\.(,|) /
4
+ MAIN_REPLACEMENT = "\\1.&#8239;\\2.\\3&nbsp;"
5
+ CLEANUP_EXPRESSION = /, ([a-zA-Z]\.&)/
6
+ CLEANUP_REPLACEMENT = ",&nbsp;\\1"
7
+
8
+ def enabled?(doc)
9
+ wns = doc.site.config["wns"] || {}
10
+ wns["abbreviations"] || false
11
+ end
12
+
13
+ def replace_abbreviations!(doc)
14
+ if Abbreviations::enabled?(doc)
15
+ doc.content = doc.content.gsub(Abbreviations::MAIN_EXPRESSION, Abbreviations::MAIN_REPLACEMENT)
16
+ doc.content = doc.content.gsub(Abbreviations::CLEANUP_EXPRESSION, Abbreviations::CLEANUP_REPLACEMENT)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,36 @@
1
+ require 'digest/sha2'
2
+ module WNS
3
+ module DigestFilters
4
+ def sha256_64(input)
5
+ unless input.nil?
6
+ Digest::SHA256.base64digest input
7
+ else
8
+ ""
9
+ end
10
+ end
11
+
12
+ def sha384_64(input)
13
+ unless input.nil?
14
+ Digest::SHA384.base64digest input
15
+ else
16
+ ""
17
+ end
18
+ end
19
+
20
+ def sha256(input)
21
+ unless input.nil?
22
+ Digest::SHA256.hexdigest input
23
+ else
24
+ ""
25
+ end
26
+ end
27
+
28
+ def sha384(input)
29
+ unless input.nil?
30
+ Digest::SHA384.hexdigest input
31
+ else
32
+ ""
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,7 @@
1
+ module WNS
2
+ module FilePropertiesFilter
3
+ def file_size(path)
4
+ File.size path
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ module WNS
2
+ module Quads
3
+ MAIN_EXPRESSION = /([\.!?‽”“…])(\r|)\n(?![\n\-\/]|http|>\n)/
4
+ MAIN_REPLACEMENT = "\\1&ensp;"
5
+ CLEANUP_EXPRESSION = /&ensp;( |> )*/
6
+ CLEANUP_REPLACEMENT = "&ensp;"
7
+
8
+ def enabled?(doc)
9
+ wns = doc.site.config["wns"] || {}
10
+ quads = wns["quads"] || false
11
+ end
12
+
13
+ def quads(input)
14
+ output = input.gsub(MAIN_EXPRESSION, MAIN_REPLACEMENT)
15
+ output = output.gsub(CLEANUP_EXPRESSION, CLEANUP_REPLACEMENT)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,7 @@
1
+ module WNS
2
+ module QuadsFilter
3
+ def quads(input)
4
+ Quads::insert_quads input
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,24 @@
1
+ module WNS
2
+ class SceneBreakTag < Liquid::Tag
3
+ def initialize(tag_name, text, tokens)
4
+ super
5
+
6
+ @text = text.strip!
7
+ end
8
+
9
+ def render(context)
10
+ case @text
11
+ when "leaves"
12
+ '<p style="text-align:center" data-mce-style="text-align:center">🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒 🙐 🙑 🙓 🙒</p>'
13
+ when "wave"
14
+ '<p style="text-align:center;letter-spacing:-.13em" data-mce-style="text-align:center;letter-spacing:-.13em">◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠◡◠‏</p>'
15
+ when "wall"
16
+ '<p style="text-align:center;letter-spacing:-.2em" data-mce-style="text-align:center;letter-spacing:-.2em">‎⚎‏⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎⚍‎⚎</p>'
17
+ else
18
+ '<p style="text-align:center" data-mce-style="text-align:center">🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿🙾🙿</p>'
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+
@@ -0,0 +1,3 @@
1
+ Liquid::Template.register_filter(WNS::QuadsFilter)
2
+ Liquid::Template.register_filter(WNS::DigestFilters)
3
+ Liquid::Template.register_filter(WNS::FilePropertiesFilter)
@@ -0,0 +1,11 @@
1
+ Jekyll::Hooks.register :documents, :pre_render do |document|
2
+ WNS::Abbreviations::replace_abbreviations! document
3
+ end
4
+
5
+ Jekyll::Hooks.register :pages, :pre_render do |document|
6
+ WNS::Abbreviations::replace_abbreviations! document
7
+ end
8
+
9
+ Jekyll::Hooks.register :posts, :pre_render do |document|
10
+ WNS::Abbreviations::replace_abbreviations! document
11
+ end
@@ -0,0 +1 @@
1
+ Liquid::Template.register_tag('scene_break', WNS::SceneBreakTag)
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-wns
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Thai Chung
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-06-08 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ - mail@0xReki.de
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".github/workflows/gem-push.yml"
21
+ - ".gitignore"
22
+ - Gemfile
23
+ - LICENSE
24
+ - README.md
25
+ - jekyll-wns.gemspec
26
+ - lib/.ruby-version
27
+ - lib/jekyll-wns.rb
28
+ - lib/jekyll-wns/assets/abbreviations.rb
29
+ - lib/jekyll-wns/assets/digest_filters.rb
30
+ - lib/jekyll-wns/assets/file_properties_filter.rb
31
+ - lib/jekyll-wns/assets/quads.rb
32
+ - lib/jekyll-wns/assets/quads_filter.rb
33
+ - lib/jekyll-wns/assets/scene_break_tag.rb
34
+ - lib/jekyll-wns/register_filters.rb
35
+ - lib/jekyll-wns/register_hooks.rb
36
+ - lib/jekyll-wns/register_tags.rb
37
+ homepage: https://github.com/0xReki/jekyll-wns
38
+ licenses:
39
+ - MIT
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubygems_version: 3.0.3.1
57
+ signing_key:
58
+ specification_version: 4
59
+ summary: Collection of Filters, Tags and Hooks I use.
60
+ test_files: []