jekyll-microtypo 0.0.9 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -3
- data/Rakefile +2 -2
- data/lib/jekyll/microtypo/version.rb +1 -1
- data/lib/jekyll/microtypo.rb +114 -91
- data/lib/jekyll-microtypo.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0628e2b5c2f6a7fa37b390567655df106eaad46f'
|
4
|
+
data.tar.gz: 5f85d6275246f9e39c6a612b781e112c6da7befd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4884f750e414590c4f90a7b1bad3a07ec2445b7b8f0f57bc8ea32866790f9a28b73d16a13e930e61e2ed30bd0ef522769b15aa134c66fdd0cfb2f97e37e089d
|
7
|
+
data.tar.gz: 5533853d81f6e15c26ea6226d182fb4a2d0043471b31b5e5cccff520dc646cf027c8349d7b89b3e009fc5f05ed73b501017edd0a96b1adabae510d6dbb6de796
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/lib/jekyll/microtypo.rb
CHANGED
@@ -1,97 +1,120 @@
|
|
1
1
|
module Jekyll
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
input.gsub!(/ \!\?([^\w]|$)/, ' ⁉\1'.freeze)
|
54
|
-
input.gsub!(/ \!\!\!([^\w]|$)/, ' ‼\1'.freeze)
|
55
|
-
input.gsub!(/ \!\!([^\w]|$)/, ' ‼\1'.freeze)
|
56
|
-
|
57
|
-
# Thin non-breaking space before '%', ';', '!', '?', 'px'
|
58
|
-
input.gsub!(/(\s)+(\d+)(\s)?(px|%)(\s|.)/, '\1\2 \4\5'.freeze)
|
59
|
-
input.gsub!(/ (%|;|\!|\?)([^\w!]|$)/, ' \1\2'.freeze)
|
60
|
-
|
61
|
-
# non-breaking space
|
62
|
-
input.gsub!(' :'.freeze, ' :'.freeze)
|
63
|
-
|
64
|
-
# Currencies
|
65
|
-
input.gsub!(/(\d+)\s*($|€)/, '\1 \2'.freeze)
|
66
|
-
|
67
|
-
# nbsp after middle dash (dialogs)
|
68
|
-
input.gsub!(/(—|—)(\s)/, '\1 '.freeze)
|
69
|
-
|
70
|
-
# Times
|
71
|
-
input.gsub!(/(\s)+(\d+)(\s)*x(\s)*(?=\d)/, '\1\2 × \5'.freeze)
|
72
|
-
|
73
|
-
elsif locale == 'en_US'
|
74
|
-
|
75
|
-
# Remove useless spaces
|
76
|
-
input.gsub!(/ (:|%|;|\!|\?)([^\w!]|$)/, '\1\2'.freeze)
|
77
|
-
|
78
|
-
# Currencies
|
79
|
-
input.gsub!(/($|€)\s*(\d+)/, '\1\2'.freeze)
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
|
-
# Elipsis
|
84
|
-
input.gsub!('...', '…'.freeze)
|
85
|
-
|
86
|
-
arrayResponse.push input
|
87
|
-
end
|
88
|
-
end
|
2
|
+
module Microtypo
|
3
|
+
@@settings = []
|
4
|
+
|
5
|
+
def get_settings
|
6
|
+
if @@settings.none?
|
7
|
+
@@settings = Jekyll.configuration({})['microtypo'] || {}
|
8
|
+
end
|
9
|
+
@@settings
|
10
|
+
end
|
11
|
+
|
12
|
+
# Example:
|
13
|
+
# {{ content | microtypo: "fr_FR" }}
|
14
|
+
def microtypo(input, locale = nil, settings = {})
|
15
|
+
if settings.none?
|
16
|
+
settings = get_settings
|
17
|
+
end
|
18
|
+
settings['median'] ||= false
|
19
|
+
|
20
|
+
locale ||= 'en_US'.freeze
|
21
|
+
|
22
|
+
array_response = []
|
23
|
+
|
24
|
+
# <pre></pre> management
|
25
|
+
# Replace \n in <pre> by <br />\n in order to keep line break visualy
|
26
|
+
pre_array = input.to_s.split('<pre'.freeze)
|
27
|
+
pre_array.each do |input|
|
28
|
+
end_pre_array = input.to_s.split('</pre>'.freeze)
|
29
|
+
if end_pre_array.size == 2
|
30
|
+
array_response.push('<pre'.freeze)
|
31
|
+
array_response.push(end_pre_array.first)
|
32
|
+
array_response.push('</pre>'.freeze)
|
33
|
+
end
|
34
|
+
input = end_pre_array.last
|
35
|
+
|
36
|
+
# <!-- nomicrotypo --><!-- endnomicrotypo --> management
|
37
|
+
no_fix_comment_array = input.to_s.split('<!-- nomicrotypo -->'.freeze)
|
38
|
+
no_fix_comment_array.each do |input|
|
39
|
+
endno_fix_comment_array = input.to_s.split('<!-- endnomicrotypo -->'.freeze)
|
40
|
+
if endno_fix_comment_array.size == 2
|
41
|
+
array_response.push(endno_fix_comment_array.first)
|
42
|
+
end
|
43
|
+
input = endno_fix_comment_array.last
|
44
|
+
|
45
|
+
# <script></script> management
|
46
|
+
script_array = input.to_s.split('<script'.freeze)
|
47
|
+
script_array.each do |input|
|
48
|
+
end_script_array = input.to_s.split('</script>'.freeze)
|
49
|
+
if end_script_array.size == 2
|
50
|
+
array_response.push('<script'.freeze)
|
51
|
+
array_response.push(end_script_array.first)
|
52
|
+
array_response.push('</script>'.freeze)
|
89
53
|
end
|
54
|
+
input = end_script_array.last
|
55
|
+
|
56
|
+
if locale == 'fr_FR'
|
57
|
+
|
58
|
+
# Ordinals
|
59
|
+
input.gsub!(/(\d)(e|è)(r|me)?([\s.,])/, '\1<sup>\2\3</sup>\4'.freeze)
|
60
|
+
|
61
|
+
# Num
|
62
|
+
input.gsub!(/n°\s*(\d)/, 'n<sup>o</sup> \1'.freeze)
|
63
|
+
|
64
|
+
# French Guillemets
|
65
|
+
input.gsub!(/(“|“|«)(\s| | )*/, '« '.freeze)
|
66
|
+
input.gsub!(/(\s| | )*(”|”|»)/, ' »'.freeze)
|
67
|
+
|
68
|
+
# Point median
|
69
|
+
|
70
|
+
if settings['median'] == true
|
71
|
+
input.gsub!(/(\p{L}+)(·\p{L}+)((·)(\p{L}+))?/, '\1<span aria-hidden="true">\2\4</span>\5'.freeze)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Special punctuation
|
75
|
+
input.gsub!(/(\s)+\?\!([^\w]|$)/, ' ⁈\2'.freeze)
|
76
|
+
input.gsub!(/(\s)+\!\?([^\w]|$)/, ' ⁉\2'.freeze)
|
77
|
+
input.gsub!(/(\s)+\!\!\!([^\w]|$)/, ' ‼\2'.freeze)
|
78
|
+
input.gsub!(/(\s)+\!\!([^\w]|$)/, ' ‼\2'.freeze)
|
79
|
+
|
80
|
+
# Thin non-breaking space before '%', ';', '!', '?', 'px'
|
81
|
+
input.gsub!(/(\s)+(\d+)(\s)?(px|%)(\s|.)/, '\1\2 \4\5'.freeze)
|
82
|
+
input.gsub!(/ (%|;|\!|\?)([^\w!]|$)/, ' \1\2'.freeze)
|
83
|
+
|
84
|
+
# non-breaking space
|
85
|
+
input.gsub!(' :'.freeze, ' :'.freeze)
|
90
86
|
|
91
|
-
|
92
|
-
|
87
|
+
# Currencies
|
88
|
+
input.gsub!(/(\d+)\s*($|€)/, '\1 \2'.freeze)
|
89
|
+
|
90
|
+
# nbsp after middle dash (dialogs)
|
91
|
+
input.gsub!(/(—|—)(\s)/, '\1 '.freeze)
|
92
|
+
|
93
|
+
# Times
|
94
|
+
input.gsub!(/(\s)+(\d+)(\s)*x(\s)*(?=\d)/, '\1\2 × \5'.freeze)
|
95
|
+
|
96
|
+
elsif locale == 'en_US'
|
97
|
+
|
98
|
+
# Remove useless spaces
|
99
|
+
input.gsub!(/ (:|%|;|\!|\?)([^\w!]|$)/, '\1\2'.freeze)
|
100
|
+
|
101
|
+
# Currencies
|
102
|
+
input.gsub!(/($|€)\s*(\d+)/, '\1\2'.freeze)
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
# Elipsis
|
107
|
+
input.gsub!('...', '…'.freeze)
|
108
|
+
|
109
|
+
array_response.push input
|
110
|
+
end
|
93
111
|
end
|
94
|
-
|
95
|
-
|
112
|
+
end
|
113
|
+
|
114
|
+
# Clean empty lines
|
115
|
+
array_response.join.gsub(/\A\s*\n$/, ''.freeze)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
96
119
|
|
97
120
|
Liquid::Template.register_filter(Jekyll::Microtypo)
|
data/lib/jekyll-microtypo.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require 'jekyll/microtypo'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-microtypo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Schapira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -92,6 +92,20 @@ dependencies:
|
|
92
92
|
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 5.8.4
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: gem-release
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '1.0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '1.0'
|
95
109
|
description: " Jekyll plugin that improves microtypography\n"
|
96
110
|
email:
|
97
111
|
- contact@borisschapira.com
|
@@ -126,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
140
|
version: '0'
|
127
141
|
requirements: []
|
128
142
|
rubyforge_project:
|
129
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.5.2
|
130
144
|
signing_key:
|
131
145
|
specification_version: 4
|
132
146
|
summary: Jekyll plugin that improves microtypography
|