jekyll-microtypo 0.0.2 → 0.0.3

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 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: {}