jekyll-microtypo 0.1.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/jekyll-microtypo.svg)](https://badge.fury.io/rb/jekyll-microtypo)
|
4
4
|
[![Gem Downloads](https://img.shields.io/gem/dt/jekyll-microtypo.svg?style=flat)](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
|