jekyll-microtypo 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll/microtypo/version.rb +1 -1
- data/lib/jekyll/microtypo.rb +70 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 753d9da212364545253901b46310502cf1d124d0
|
4
|
+
data.tar.gz: d1e334546a0d6ec0dd2677801db99bc96a018763
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16502bf645d06be1985dbb6caabbf3707ea92585d019795a47f5b28b484d7601862585dbed82ed9bda20d3a652be11c28f116044e54c471b51d314433c53fc11
|
7
|
+
data.tar.gz: 56a18ec5c14fe5e9784b2370762d17d97e8c8810939928e72c31b7262252832d4e58773b99e6980613b659c505776fdee3c7c6e55575fd000ff42dcc1b273336
|
data/lib/jekyll/microtypo.rb
CHANGED
@@ -1,21 +1,75 @@
|
|
1
1
|
module Jekyll
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
2
|
+
module Microtypo
|
3
|
+
# Example:
|
4
|
+
# {{ content | microtypo: "fr_FR" }}
|
5
|
+
def microtypo(input, locale = nil)
|
6
|
+
locale = 'en_US'.freeze unless locale
|
7
|
+
|
8
|
+
arrayResponse = []
|
9
|
+
|
10
|
+
# <pre></pre> management
|
11
|
+
# Replace \n in <pre> by <br />\n in order to keep line break visualy
|
12
|
+
preArray = input.to_s.split('<pre'.freeze)
|
13
|
+
preArray.each do |input|
|
14
|
+
endPreArray = input.to_s.split('</pre>'.freeze)
|
15
|
+
if endPreArray.size == 2
|
16
|
+
arrayResponse.push('<pre'.freeze)
|
17
|
+
arrayResponse.push(endPreArray.first.gsub(/\n/, "<br />\n".freeze))
|
18
|
+
arrayResponse.push('</pre>'.freeze)
|
19
|
+
end
|
20
|
+
input = endPreArray.last
|
21
|
+
|
22
|
+
if locale == 'fr_FR'
|
23
|
+
|
24
|
+
# 1er, 3ème, 4ème…
|
25
|
+
input.gsub!(/(\d)(e|è)(r|me)?([\s.,])/, '\1<sup>\2\3</sup>\4'.freeze)
|
26
|
+
|
27
|
+
# Guillemets à la française
|
28
|
+
input.gsub!(/“|“/, '« '.freeze)
|
29
|
+
input.gsub!(/”|”/, ' »'.freeze)
|
30
|
+
|
31
|
+
# Special punctuation
|
32
|
+
input.gsub!(/ \?\!([^\w]|$)/, ' ⁈\1'.freeze)
|
33
|
+
input.gsub!(/ \!\?([^\w]|$)/, ' ⁉\1'.freeze)
|
34
|
+
input.gsub!(/ \!\!\!([^\w]|$)/, ' ‼\1'.freeze)
|
35
|
+
input.gsub!(/ \!\!([^\w]|$)/, ' ‼\1'.freeze)
|
36
|
+
|
37
|
+
# Thin non-breaking space before '%', ';', '!', '?', 'px'
|
38
|
+
input.gsub!(/(\s)+(\d+)(\s)?(px|%)(\s|.)/, '\1\2 \4\5'.freeze)
|
39
|
+
input.gsub!(/ (%|;|\!|\?)([^\w!]|$)/, ' \1\2'.freeze)
|
40
|
+
|
41
|
+
# non-breaking space
|
42
|
+
input.gsub!(/ :/, ' :'.freeze)
|
43
|
+
|
44
|
+
# Currencies
|
45
|
+
input.gsub!(/(\d+)\s*($|€)/, '\1 \2'.freeze)
|
46
|
+
|
47
|
+
elsif locale == 'en_US'
|
48
|
+
|
49
|
+
# Remove useless spaces
|
50
|
+
input.gsub!(/ (:|%|;|\!|\?)([^\w!]|$)/, '\1\2'.freeze)
|
51
|
+
|
52
|
+
# Currencies
|
53
|
+
input.gsub!(/($|€)\s*(\d+)/, '\1 \2'.freeze)
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
# nbsp after middle dash
|
58
|
+
input.gsub!(/(—|—)(\s)/, '\1 '.freeze)
|
59
|
+
|
60
|
+
# Elipsis
|
61
|
+
input.gsub!('...', '…'.freeze)
|
62
|
+
|
63
|
+
# Times
|
64
|
+
input.gsub!('(\s)+(\d+)(\s)?x(\s)?(?=\d)', '\1\2\3×\3'.freeze)
|
65
|
+
|
66
|
+
arrayResponse.push input
|
67
|
+
end
|
68
|
+
|
69
|
+
# Clean empty lines
|
70
|
+
arrayResponse.join.gsub(/\A\s*\n$/, '')
|
71
|
+
end
|
17
72
|
end
|
18
|
-
end
|
19
73
|
end
|
20
74
|
|
21
75
|
Liquid::Template.register_filter(Jekyll::Microtypo)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-microtypo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Schapira
|
@@ -106,7 +106,7 @@ files:
|
|
106
106
|
- lib/jekyll-microtypo.rb
|
107
107
|
- lib/jekyll/microtypo.rb
|
108
108
|
- lib/jekyll/microtypo/version.rb
|
109
|
-
homepage: https://github.
|
109
|
+
homepage: https://borisschapira.github.io/jekyll-microtypo/
|
110
110
|
licenses:
|
111
111
|
- MIT
|
112
112
|
metadata: {}
|