jekyll-microtypo 0.1.2 → 0.2.1
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 +4 -4
- data/Gemfile +3 -2
- data/LICENSE +1 -1
- data/README.md +192 -0
- data/Rakefile +21 -5
- data/lib/jekyll-microtypo.rb +3 -1
- data/lib/jekyll/microtypo.rb +18 -2
- data/lib/jekyll/microtypo/version.rb +3 -1
- metadata +20 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 374c7bf0a7bcb54cf2dc2621b7957e350e027531
|
4
|
+
data.tar.gz: 0aa11e13446becdabac1645ade47b7af6196dc1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9047fd528c42e6b25b458d209c281423fcfa4d0e7939475419b613b376ab7324c870929c1c0b43714d2055451e0da446a92d3005be62c11f8606726e17fe106
|
7
|
+
data.tar.gz: 9d0e85b371725a224f71756f7dddb256dc1f78683cdb9a3f5b8cdc65b5197c13d4d6b25d59ad3042ec889c2ffb8112501fe2de453a9e83df608b1a38ba244659
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2016 Boris Schapira
|
3
|
+
Copyright (c) 2016-present Boris Schapira and contributors
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -3,4 +3,196 @@
|
|
3
3
|
[](https://badge.fury.io/rb/jekyll-microtypo)
|
4
4
|
[](http://rubygems.org/gems/jekyll-microtypo)
|
5
5
|
|
6
|
+
## Table of contents / Table des matières
|
7
|
+
|
8
|
+
- [Jekyll microtypo plugin tag](#jekyll-microtypo-plugin-tag)
|
9
|
+
- [Table of contents / Table des matières](#table-of-contents--table-des-mati%C3%A8res)
|
10
|
+
- [English](#english)
|
11
|
+
- [en_US fixings](#enus-fixings)
|
12
|
+
- [Installation](#installation)
|
13
|
+
- [Global use](#global-use)
|
14
|
+
- [Configuration](#configuration)
|
15
|
+
- [Ignore code sections](#ignore-code-sections)
|
16
|
+
- [Français](#fran%C3%A7ais)
|
17
|
+
- [Corrections fr_FR](#corrections-frfr)
|
18
|
+
- [Installation](#installation)
|
19
|
+
- [Utilisation générique](#utilisation-g%C3%A9n%C3%A9rique)
|
20
|
+
- [Configuration](#configuration)
|
21
|
+
- [Ignorer des portions de code](#ignorer-des-portions-de-code)
|
22
|
+
|
23
|
+
## English
|
24
|
+
|
6
25
|
`jekyll-microtypo` is a [Jekyll](http://jekyllrb.com/) plugin that attempts to fix microtypography for french and english languages.
|
26
|
+
|
27
|
+
It provides a new filter which takes into parameter the locale of the text to be improved:
|
28
|
+
|
29
|
+
```
|
30
|
+
{{ content | microtypo: 'en_US' }}
|
31
|
+
```
|
32
|
+
|
33
|
+
For the moment, `jekyll-microtypo` only sypports fr_FR and en_US.
|
34
|
+
|
35
|
+
### en_US fixings
|
36
|
+
|
37
|
+
- Removal of unnecessary spaces before certain punctuation marks
|
38
|
+
- Use of opening and closing single quotation marks
|
39
|
+
- Removing unnecessary spaces between amount and currency
|
40
|
+
- Replacement of "..." with "..."
|
41
|
+
- Use of special characters like ©, ®, ™ or ℗ by typing the letter with parenthesis
|
42
|
+
|
43
|
+
### Installation
|
44
|
+
|
45
|
+
Add `gem 'jekyll-microtypo'` to the `jekyll_plugin` group in your `Gemfile`:
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
source 'https://rubygems.org'
|
49
|
+
|
50
|
+
gem 'jekyll'
|
51
|
+
|
52
|
+
group :jekyll_plugins do
|
53
|
+
gem 'jekyll-microtypo'
|
54
|
+
end
|
55
|
+
```
|
56
|
+
|
57
|
+
Then run `bundle` to install the gem.
|
58
|
+
|
59
|
+
### Global use
|
60
|
+
|
61
|
+
A simple way to use `jekyll-microtypo` is to use it into a master layout.
|
62
|
+
|
63
|
+
Add a `microtypo.html` file to your `_layouts` folder, containing the following snippet:
|
64
|
+
|
65
|
+
```liquid
|
66
|
+
{{ content | microtypo: page.locale }}
|
67
|
+
```
|
68
|
+
|
69
|
+
Then, modify all your top-level layouts to inherit from this one. For example, if your only previous top-level layout was `default.html`, add this header:
|
70
|
+
|
71
|
+
```
|
72
|
+
---
|
73
|
+
layout: microtypo
|
74
|
+
---
|
75
|
+
|
76
|
+
… The previous content of default.html …
|
77
|
+
```
|
78
|
+
|
79
|
+
### Configuration
|
80
|
+
|
81
|
+
There is no configuration needed for **en_US**.
|
82
|
+
For **fr_FR**, you can add a configuration **if you want to hide the inclusive median point abbreviation to screen readers**.
|
83
|
+
|
84
|
+
Add `microtypo` to your `_config.yml`:
|
85
|
+
|
86
|
+
```yaml
|
87
|
+
microtypo:
|
88
|
+
median: true
|
89
|
+
```
|
90
|
+
* Before : `Il·Elle est intéressé·e.`
|
91
|
+
* After : `Il<span aria-hidden="true">·Elle</span> est intéressé<span aria-hidden="true">·e</span>.`
|
92
|
+
|
93
|
+
### Ignore code sections
|
94
|
+
|
95
|
+
It is possible to tell `jekyll-microtypo` to ignore one or more sections of code in its corrective operation. To do this, just place the code to ignore between these two comments:
|
96
|
+
|
97
|
+
```html
|
98
|
+
This content will be fixed.
|
99
|
+
|
100
|
+
<!-- nomicrotypo -->
|
101
|
+
This content will not be fixed
|
102
|
+
<!-- endnomicrotypo -->
|
103
|
+
|
104
|
+
This content will be fixed.
|
105
|
+
```
|
106
|
+
|
107
|
+
## Français
|
108
|
+
|
109
|
+
`jekyll-microtypo` est un plugin [Jekyll](http://jekyllrb.com/) qui permet de corriger la microtypographie de contenus rédigés en anglais ou en français.
|
110
|
+
|
111
|
+
Il fournit un nouveau filtre qui prend en paramètre la locale du texte à corriger:
|
112
|
+
|
113
|
+
```
|
114
|
+
{{ content | microtypo: 'en_US' }}
|
115
|
+
```
|
116
|
+
|
117
|
+
Pour le moment, `jekyll-microtypo` ne supporte que fr_FR et en_US.
|
118
|
+
|
119
|
+
### Corrections fr_FR
|
120
|
+
|
121
|
+
- Remplacement des ordinnaux "1er, 2e" par "1<sup>er</sup>, 2<sup>e</sup>"
|
122
|
+
- Remplacement de "n°3" par "n<sup>o</sup> 3"
|
123
|
+
- Utilisation des guillemets à la français
|
124
|
+
- Utilisation des guillemets simples ouvrants et fermants
|
125
|
+
- Remplacement des pontuations spéciales "?!", "!?", "!!" par les signes adaptés "⁈", "⁉", "‼"
|
126
|
+
- Ajout d'une espace insécable ou fine insécable devant les signes de ponctuation qui le nécessitent
|
127
|
+
- Remplacement de l'espace entre des chiffres et certaines unités par une espace fine insécable (attention, l'espace doit être présente à l'origine)
|
128
|
+
- Ajout d'une espace insécable avant le montant et les signes "€" ou "$"
|
129
|
+
- Ajout d'une espace insécable après un tiret long
|
130
|
+
- Remplacement du "x" par un "×" dans les multiplications
|
131
|
+
- Remplacement de "..." par une vrai éllipse "..."
|
132
|
+
- Utilisation de caractères spéciaux comme ©, ®, ™ ou ℗ en utilisant une lettre entourée de parenthèses.
|
133
|
+
- **Si configuré** : masquage de la notation abbréviative à base de point médian pour les lecteurs d'écran
|
134
|
+
|
135
|
+
### Installation
|
136
|
+
|
137
|
+
Ajoutez `gem 'jekyll-microtypo'` au groupe `jekyll_plugin` de votre `Gemfile`:
|
138
|
+
|
139
|
+
```ruby
|
140
|
+
source 'https://rubygems.org'
|
141
|
+
|
142
|
+
gem 'jekyll'
|
143
|
+
|
144
|
+
group :jekyll_plugins do
|
145
|
+
gem 'jekyll-microtypo'
|
146
|
+
end
|
147
|
+
```
|
148
|
+
|
149
|
+
Puis exécutez `bundle` pour installer la gem.
|
150
|
+
|
151
|
+
### Utilisation générique
|
152
|
+
|
153
|
+
Une manière simple d'utiliser `jekyll-microtypo` est de l'appliquer sur un *layout* de plus haut niveau.
|
154
|
+
|
155
|
+
Ajoutez un fichier `microtypo.html` à votre dossier `_layouts`, contenant la portion de code suivante:
|
156
|
+
|
157
|
+
```liquid
|
158
|
+
{{ content | microtypo: page.locale }}
|
159
|
+
```
|
160
|
+
|
161
|
+
Puis modifier vos autres *layout* de plus haut niveau pour qu'ils héritent de ce *layout*. Par exemple, si votre *layout* de plus haut niveau était `default.html`, ajoutez-lui cet en-tête:
|
162
|
+
|
163
|
+
```
|
164
|
+
---
|
165
|
+
layout: microtypo
|
166
|
+
---
|
167
|
+
|
168
|
+
… Le contenu de default.html avant intervention …
|
169
|
+
```
|
170
|
+
|
171
|
+
### Configuration
|
172
|
+
|
173
|
+
Aucune configuration n'est nécessaire pour la locale **en_US**.
|
174
|
+
Pour la locale **fr_FR**, vous pouvez ajouter une configuration dans le seul cas où vous voudriez **masquer la syntaxe abbréviative à base de point médian aux lecteurs d'écran**.
|
175
|
+
|
176
|
+
Dans ce cas, ajoutez `microtypo` à votre `_config.yml`:
|
177
|
+
|
178
|
+
```yaml
|
179
|
+
microtypo:
|
180
|
+
median: true
|
181
|
+
```
|
182
|
+
|
183
|
+
* Avant : `Il·Elle est intéressé·e.`
|
184
|
+
* Après : `Il<span aria-hidden="true">·Elle</span> est intéressé<span aria-hidden="true">·e</span>.`
|
185
|
+
|
186
|
+
### Ignorer des portions de code
|
187
|
+
|
188
|
+
Il est possible d'indiquer à `jekyll-microtypo` d'ignorer une ou plusieurs portions de code dans son opération de correction. Pour cela, il suffit de placer la portion de code entre deux commentaires :
|
189
|
+
|
190
|
+
```html
|
191
|
+
Ce contenu sera corrigé.
|
192
|
+
|
193
|
+
<!-- nomicrotypo -->
|
194
|
+
Celui-ci ne sera pas corrigé.
|
195
|
+
<!-- endnomicrotypo -->
|
196
|
+
|
197
|
+
Ce contenu sera corrigé.
|
198
|
+
```
|
data/Rakefile
CHANGED
@@ -1,8 +1,24 @@
|
|
1
|
-
|
2
|
-
require 'rake/testtask'
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
|
-
|
3
|
+
require "rubygems"
|
4
|
+
require "bundler"
|
5
|
+
require "bundler/gem_tasks"
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
begin
|
8
|
+
Bundler.setup(:default, :development, :test)
|
9
|
+
rescue Bundler::BundlerError => e
|
10
|
+
warn e.message
|
11
|
+
warn "Run `bundle install` to install missing gems"
|
12
|
+
exit e.status_code
|
8
13
|
end
|
14
|
+
|
15
|
+
require "rake"
|
16
|
+
require "rake/testtask"
|
17
|
+
|
18
|
+
Rake::TestTask.new(:test) do |test|
|
19
|
+
test.libs << "lib" << "test"
|
20
|
+
test.pattern = "test/test_*.rb"
|
21
|
+
test.warning = false
|
22
|
+
end
|
23
|
+
|
24
|
+
task :default => :test
|
data/lib/jekyll-microtypo.rb
CHANGED
data/lib/jekyll/microtypo.rb
CHANGED
@@ -103,9 +103,25 @@ module Jekyll
|
|
103
103
|
|
104
104
|
end
|
105
105
|
|
106
|
+
# single quotes
|
107
|
+
input.gsub!(/(\s)'([[:alpha:]])/, '\1‘\2'.freeze)
|
108
|
+
input.gsub!(/([[:alpha:]])'(\s)/, '\1’\2'.freeze)
|
109
|
+
input.gsub!(/(\d)''/, '\1’’'.freeze)
|
110
|
+
input.gsub!(/(\d)'/, '\1’'.freeze)
|
111
|
+
|
112
|
+
# Apostrophe
|
113
|
+
input.gsub!(/([[:alpha:]])'([[:alpha:]])/, '\1’\2'.freeze)
|
114
|
+
|
106
115
|
# Elipsis
|
107
116
|
input.gsub!('...', '…'.freeze)
|
108
117
|
|
118
|
+
# Special characters
|
119
|
+
input.gsub!(/\([c|C]\)/, '©'.freeze)
|
120
|
+
input.gsub!(/\([p|P]\)/, '℗'.freeze)
|
121
|
+
input.gsub!(/\([r|R]\)/, '®'.freeze)
|
122
|
+
input.gsub!(/\((tm|TM)\)/, '™'.freeze)
|
123
|
+
input.gsub!(/\+-/, '±'.freeze)
|
124
|
+
|
109
125
|
array_response.push input
|
110
126
|
end
|
111
127
|
end
|
@@ -113,8 +129,8 @@ module Jekyll
|
|
113
129
|
|
114
130
|
# Clean empty lines
|
115
131
|
array_response.join.gsub(/\A\s*\n$/, ''.freeze)
|
132
|
+
end
|
116
133
|
end
|
117
|
-
|
118
|
-
end
|
134
|
+
end
|
119
135
|
|
120
136
|
Liquid::Template.register_filter(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.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Schapira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -36,76 +36,62 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '1.
|
39
|
+
version: '1.15'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '1.
|
46
|
+
version: '1.15'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
48
|
+
name: minitest
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
54
|
-
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '10.0'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: rubocop
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
53
|
+
version: '5.8'
|
54
|
+
- - ">="
|
66
55
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
56
|
+
version: 5.8.4
|
68
57
|
type: :development
|
69
58
|
prerelease: false
|
70
59
|
version_requirements: !ruby/object:Gem::Requirement
|
71
60
|
requirements:
|
72
61
|
- - "~>"
|
73
62
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
63
|
+
version: '5.8'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 5.8.4
|
75
67
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
68
|
+
name: rake
|
77
69
|
requirement: !ruby/object:Gem::Requirement
|
78
70
|
requirements:
|
79
71
|
- - "~>"
|
80
72
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: 5.8.4
|
73
|
+
version: '12.0'
|
85
74
|
type: :development
|
86
75
|
prerelease: false
|
87
76
|
version_requirements: !ruby/object:Gem::Requirement
|
88
77
|
requirements:
|
89
78
|
- - "~>"
|
90
79
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
92
|
-
- - ">="
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: 5.8.4
|
80
|
+
version: '12.0'
|
95
81
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
82
|
+
name: rubocop
|
97
83
|
requirement: !ruby/object:Gem::Requirement
|
98
84
|
requirements:
|
99
85
|
- - "~>"
|
100
86
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
87
|
+
version: 0.51.0
|
102
88
|
type: :development
|
103
89
|
prerelease: false
|
104
90
|
version_requirements: !ruby/object:Gem::Requirement
|
105
91
|
requirements:
|
106
92
|
- - "~>"
|
107
93
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
94
|
+
version: 0.51.0
|
109
95
|
description: " Jekyll plugin that improves microtypography\n"
|
110
96
|
email:
|
111
97
|
- contact@borisschapira.com
|
@@ -132,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
118
|
requirements:
|
133
119
|
- - ">="
|
134
120
|
- !ruby/object:Gem::Version
|
135
|
-
version: 2.
|
121
|
+
version: 2.1.0
|
136
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
123
|
requirements:
|
138
124
|
- - ">="
|
@@ -140,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
126
|
version: '0'
|
141
127
|
requirements: []
|
142
128
|
rubyforge_project:
|
143
|
-
rubygems_version: 2.
|
129
|
+
rubygems_version: 2.6.14
|
144
130
|
signing_key:
|
145
131
|
specification_version: 4
|
146
132
|
summary: Jekyll plugin that improves microtypography
|