latex-decode 0.0.9 → 0.0.10
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.
- data/features/punctuation.feature +16 -16
- data/features/special_characters.feature +20 -0
- data/lib/latex/decode.rb +5 -0
- data/lib/latex/decode/base.rb +2 -7
- data/lib/latex/decode/punctuation.rb +5 -3
- data/lib/latex/decode/symbols.rb +1 -1
- data/lib/latex/decode/version.rb +1 -1
- metadata +16 -14
@@ -2,12 +2,12 @@ Feature: Decode LaTeX punctuation directives
|
|
2
2
|
As a hacker who works with LaTeX
|
3
3
|
I want to be able to decode LaTeX punctuation marks
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
Scenario Outline: LaTeX to Unicode transformation
|
6
|
+
When I decode the string '<latex>'
|
7
|
+
Then the result should be '<unicode>'
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
Scenarios: Punctuation macros
|
10
|
+
| latex | unicode |
|
11
11
|
| \\textendash | – |
|
12
12
|
| \\textemdash | — |
|
13
13
|
| \\textquoteleft | ‘ |
|
@@ -31,15 +31,15 @@ Feature: Decode LaTeX punctuation directives
|
|
31
31
|
| \\rangle | ⟩ |
|
32
32
|
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
Scenarios: Punctuation symbols
|
35
|
+
| latex | unicode | description |
|
36
|
+
| - | - | hyphen |
|
37
|
+
| -- | – | en-dash |
|
38
|
+
| --- | — | em-dash |
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
Scenarios: Quotation marks
|
41
|
+
| latex | unicode | description |
|
42
|
+
| `` | “ | left double quotes |
|
43
|
+
| '' | ” | right double quotes |
|
44
|
+
| ` | ‘ | left single quotes |
|
45
|
+
| ' | ’ | right single quotes |
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Feature: Decode LaTeX special characters
|
2
|
+
As a hacker who works with LaTeX
|
3
|
+
I want to be able to decode a few special characters which are escaped by LaTeX
|
4
|
+
|
5
|
+
Scenario Outline: LaTeX to Unicode transformation
|
6
|
+
When I decode the string '<latex>'
|
7
|
+
Then the result should be '<unicode>'
|
8
|
+
|
9
|
+
Scenarios: Special characters
|
10
|
+
| latex | unicode |
|
11
|
+
| \\\& | & |
|
12
|
+
| \\# | # |
|
13
|
+
| \\$ | $ |
|
14
|
+
| \\% | % |
|
15
|
+
| \\{ | { |
|
16
|
+
| \\} | } |
|
17
|
+
| \\_ | _ |
|
18
|
+
| \\~{} | ~ |
|
19
|
+
| \\textbackslash{} | \\ |
|
20
|
+
| \\textasciicircum{} | ^ |
|
data/lib/latex/decode.rb
CHANGED
@@ -23,6 +23,11 @@ require 'latex/decode/version'
|
|
23
23
|
require 'latex/decode/compatibility'
|
24
24
|
require 'latex/decode/base'
|
25
25
|
|
26
|
+
require 'latex/decode/accents'
|
27
|
+
require 'latex/decode/diacritics'
|
28
|
+
require 'latex/decode/punctuation'
|
29
|
+
require 'latex/decode/symbols'
|
30
|
+
|
26
31
|
module LaTeX
|
27
32
|
|
28
33
|
class << self
|
data/lib/latex/decode/base.rb
CHANGED
@@ -2,12 +2,7 @@
|
|
2
2
|
|
3
3
|
module LaTeX
|
4
4
|
module Decode
|
5
|
-
|
6
|
-
autoload :Accents, 'latex/decode/accents'
|
7
|
-
autoload :Diacritics, 'latex/decode/diacritics'
|
8
|
-
autoload :Punctuation, 'latex/decode/punctuation'
|
9
|
-
autoload :Symbols, 'latex/decode/symbols'
|
10
|
-
|
5
|
+
|
11
6
|
class Decoder
|
12
7
|
class << self
|
13
8
|
attr_reader :patterns, :map
|
@@ -48,7 +43,7 @@ module LaTeX
|
|
48
43
|
string.gsub!(/([^{]\\\w)([;,.:%])/, '\1{}\2')
|
49
44
|
|
50
45
|
# \c cb -> \c{cb}
|
51
|
-
|
46
|
+
string.gsub!(/(\\[^\sij&#\$\{\}_~%])\s+([[:alpha:]]+)\b/i, '\1{\2}')
|
52
47
|
|
53
48
|
string
|
54
49
|
end
|
@@ -5,7 +5,7 @@ module LaTeX
|
|
5
5
|
|
6
6
|
class Punctuation < Decoder
|
7
7
|
|
8
|
-
@macros = Hash[*%
|
8
|
+
@macros = Hash[*%w{
|
9
9
|
textendash –
|
10
10
|
textemdash —
|
11
11
|
textquoteleft ‘
|
@@ -27,6 +27,8 @@ module LaTeX
|
|
27
27
|
textoverline ‾
|
28
28
|
langle ⟨
|
29
29
|
rangle ⟩
|
30
|
+
textasciicircum ^
|
31
|
+
textbackslash \\
|
30
32
|
}].freeze
|
31
33
|
|
32
34
|
@symbols = Hash[*%w[
|
@@ -42,9 +44,9 @@ module LaTeX
|
|
42
44
|
@map = @macros.merge(@symbols).freeze
|
43
45
|
|
44
46
|
@patterns = [
|
45
|
-
/\\(#{ @macros.keys.map { |k| Regexp.escape(k) }.compact.join('|') })(?:\{\}|\s+|\b)/ou,
|
47
|
+
/\\(#{ @macros.keys.map { |k| Regexp.escape(k) }.compact.join('|') })(?:\{\}|\s+|\b|$)/ou,
|
46
48
|
/(-+|`{1,2}|'{1,2})/,
|
47
|
-
/()\\([$%#_])(\{\})?/,
|
49
|
+
/()\\([$%#_&])(\{\})?/,
|
48
50
|
/()\\(~)\{\}/
|
49
51
|
].freeze
|
50
52
|
|
data/lib/latex/decode/symbols.rb
CHANGED
data/lib/latex/decode/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: latex-decode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: unicode
|
16
|
-
requirement: &
|
16
|
+
requirement: &70305758476260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.4'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70305758476260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70305758475220 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.8'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70305758475220
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70305758473880 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '1.0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70305758473880
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rdoc
|
49
|
-
requirement: &
|
49
|
+
requirement: &70305758472780 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '3.6'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70305758472780
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &70305758470880 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '2.6'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70305758470880
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: cucumber
|
71
|
-
requirement: &
|
71
|
+
requirement: &70305758469080 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '1.0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70305758469080
|
80
80
|
description: Decodes strings formatted in LaTeX to equivalent Unicode strings.
|
81
81
|
email:
|
82
82
|
- http://sylvester.keil.or.at
|
@@ -94,6 +94,7 @@ files:
|
|
94
94
|
- features/diacritics.feature
|
95
95
|
- features/non-latex.feature
|
96
96
|
- features/punctuation.feature
|
97
|
+
- features/special_characters.feature
|
97
98
|
- features/step_definitions/latex.rb
|
98
99
|
- features/support/env.rb
|
99
100
|
- features/umlauts.feature
|
@@ -143,6 +144,7 @@ test_files:
|
|
143
144
|
- features/diacritics.feature
|
144
145
|
- features/non-latex.feature
|
145
146
|
- features/punctuation.feature
|
147
|
+
- features/special_characters.feature
|
146
148
|
- features/step_definitions/latex.rb
|
147
149
|
- features/support/env.rb
|
148
150
|
- features/umlauts.feature
|