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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1bbb8d6ebf3e95f31d93e39bef67cc30c3d845dc
4
- data.tar.gz: 893681681c5053da04f4c1ffb3d0767fd6b05ac9
3
+ metadata.gz: 753d9da212364545253901b46310502cf1d124d0
4
+ data.tar.gz: d1e334546a0d6ec0dd2677801db99bc96a018763
5
5
  SHA512:
6
- metadata.gz: 0ee4622f8c53821c7c77179659baf74e026ee3e1057176d4932e58fb2a98c288fa34d13b3ff6637b3cf393fcace1c15a7db80568b23a60bfaaa702db7ab1b523
7
- data.tar.gz: 7fc8424710e6bc0e00b92b520b4d98233c1e14992699b37d994965f889972d39edf8cd15373e2b18475e1685c377782945547feced7a87d3621f7907347decd7
6
+ metadata.gz: 16502bf645d06be1985dbb6caabbf3707ea92585d019795a47f5b28b484d7601862585dbed82ed9bda20d3a652be11c28f116044e54c471b51d314433c53fc11
7
+ data.tar.gz: 56a18ec5c14fe5e9784b2370762d17d97e8c8810939928e72c31b7262252832d4e58773b99e6980613b659c505776fdee3c7c6e55575fd000ff42dcc1b273336
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Microtypo
3
- VERSION = "0.0.2".freeze
3
+ VERSION = "0.0.3".freeze
4
4
  end
5
5
  end
@@ -1,21 +1,75 @@
1
1
  module Jekyll
2
- module Microtypo
3
- # Example:
4
- # {{ content | microtypo: "fr_FR" }}
5
- def microtypo(input, locale=nil)
6
- locale='en_US' unless locale
7
-
8
- if locale == 'fr_FR'
9
- # Thin non-breaking space before '%', ';', '!', '?'
10
- fr_Fr_thin_nb_space = Regexp.new ' (%|;|\!|\?)([^\w!]|$)'
11
- input.gsub! fr_Fr_thin_nb_space, ' \1\2'
12
-
13
- # Elipsis
14
- input.gsub! '...', '…'
15
- end
16
- input
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!(/&ldquo;|“/, '«&#8239;'.freeze)
29
+ input.gsub!(/&rdquo;|”/, '&#8239;»'.freeze)
30
+
31
+ # Special punctuation
32
+ input.gsub!(/ \?\!([^\w]|$)/, '&#8239;&#8264;\1'.freeze)
33
+ input.gsub!(/ \!\?([^\w]|$)/, '&#8239;&#8265;\1'.freeze)
34
+ input.gsub!(/ \!\!\!([^\w]|$)/, '&#8239;&#8252;\1'.freeze)
35
+ input.gsub!(/ \!\!([^\w]|$)/, '&#8239;&#8252;\1'.freeze)
36
+
37
+ # Thin non-breaking space before '%', ';', '!', '?', 'px'
38
+ input.gsub!(/(\s)+(\d+)(\s)?(px|%)(\s|.)/, '\1\2&#8239;\4\5'.freeze)
39
+ input.gsub!(/ (%|;|\!|\?)([^\w!]|$)/, '&#8239;\1\2'.freeze)
40
+
41
+ # non-breaking space
42
+ input.gsub!(/ :/, '&nbsp;:'.freeze)
43
+
44
+ # Currencies
45
+ input.gsub!(/(\d+)\s*($|€)/, '\1&nbsp;\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&nbsp;\2'.freeze)
54
+
55
+ end
56
+
57
+ # nbsp after middle dash
58
+ input.gsub!(/(—|&mdash;)(\s)/, '\1&nbsp;'.freeze)
59
+
60
+ # Elipsis
61
+ input.gsub!('...', '&#8230;'.freeze)
62
+
63
+ # Times
64
+ input.gsub!('(\s)+(\d+)(\s)?x(\s)?(?=\d)', '\1\2\3&times;\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.2
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.com/borisschapira/jekyll-microtypo
109
+ homepage: https://borisschapira.github.io/jekyll-microtypo/
110
110
  licenses:
111
111
  - MIT
112
112
  metadata: {}