mtlite 0.3.2 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/mtlite.rb +36 -12
  5. metadata +36 -31
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1fe272c364de630b9fd4e08b7db84e122759779b
4
- data.tar.gz: 1ff4890279d3ea7312b775f0eae504c6009ef5ed
2
+ SHA256:
3
+ metadata.gz: 287458fbd384815faecca342f0b7138ad8c8efcd32e2fbc593d15dc62c120693
4
+ data.tar.gz: 568dae5601d898528f8fb497c494d1a72171d4216e2552273e3c5c65d14660ba
5
5
  SHA512:
6
- metadata.gz: 2a53ec71e7c5515a496ad92eb0d589bc03e90c7365431862b2dbcc2e77e6a98754dbb66aea2c761d03163ac17343a555b7f4d2f8e501551cfe8089e42e02b624
7
- data.tar.gz: 61032a89070362c30c215f57c1f8f34c6fa4fda1379dc7d44774508c17b471d0af276cde04ab376696c211032bd257471540d3e4742d86ec8145973b6eaa33ec
6
+ metadata.gz: 992fae9a36ca694d417312360e01e34efeb0a639b3d5cd5475da38dc779a19a68206eb802b1e7dc0c742aaf15809178526af7764ce5ab189bfa98a7d5c576819
7
+ data.tar.gz: 38ce325e7523ac459a05f4a69a77bb7657c0af9fa1c41f50fce35e11f66426e64de846d38bc70340401b4c7cf33caee2c13f259c9ba99a0da1f434a1aa6ed9e5
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/mtlite.rb CHANGED
@@ -7,19 +7,28 @@ require 'embiggen'
7
7
 
8
8
  class MTLite
9
9
 
10
- def initialize(raw_msg)
10
+ def initialize(raw_msg, debug: false)
11
11
 
12
+ @debug = debug
13
+
12
14
  # reveal the expanded URL from a shortened URL
13
- raw_msg.gsub!(/https?:\/\/[\w\-_\.\/?+&]+/) do |url|
15
+ raw_msg.gsub!(/https?:\/\/[^ ]+/) do |url|
16
+
17
+ puts 'url: ' + url.inspect if @debug
18
+
14
19
  Embiggen::URI(url).expand.to_s
15
20
  end
16
21
 
22
+ puts 'raw_msg: ' + raw_msg.inspect if @debug
23
+
17
24
  # make the smartlinks into Markdown links
18
25
  @raw_msg = smartlink(raw_msg)
19
26
 
27
+ puts '@raw_msg: ' + @raw_msg.inspect if @debug
28
+
20
29
  end
21
30
 
22
- def to_html()
31
+ def to_html(para: false, ignore_domainlabel: false)
23
32
 
24
33
  raw_msg = @raw_msg.clone
25
34
  # if it looks like an MtLite list make it an MtLite list
@@ -37,7 +46,7 @@ class MTLite
37
46
  # convert square brackets to unicode check boxes
38
47
  # replaces a [] with a unicode checkbox,
39
48
  # and [x] with a unicode checked checkbox
40
- raw_msg = raw_msg.gsub(/\[\s*\]/,'☐').gsub(/\[x\]/,'☑')
49
+ raw_msg = raw_msg.gsub(/\[\s*\](?= )/,'☐').gsub(/\[x\]/,'☑')
41
50
 
42
51
  # convert fractions using their associated unicode character
43
52
  # i.e. 1/4, 1/2, 3/4
@@ -50,11 +59,15 @@ class MTLite
50
59
  x.sub(/-([&\w]+.*\w+)-/,'<del>\1</del>')
51
60
  end
52
61
 
53
- # append a domain label after the URL
54
- raw_msg.gsub!(/(?:^\[|\s\[)[^\]]+\]\((https?:\/\/[^\s]+)/) do |x|
55
- s2 = x[/https?:\/\/([^\/]+)/,1].split(/\./)
56
- r = s2.length >= 3 ? s2[1..-1] : s2
57
- "%s [%s]" % [x, r.join('.')]
62
+ unless ignore_domainlabel then
63
+
64
+ # append a domain label after the URL
65
+ raw_msg.gsub!(/(?:^\[|\s\[)[^\]]+\]\((https?:\/\/[^\s]+)/) do |x|
66
+ s2 = x[/https?:\/\/([^\/]+)/,1].split(/\./)
67
+ r = s2.length >= 3 ? s2[1..-1] : s2
68
+ "%s [%s]" % [x, r.join('.')]
69
+ end
70
+
58
71
  end
59
72
 
60
73
  # generate html lists from mtlite 1-liner lists
@@ -74,11 +87,22 @@ class MTLite
74
87
 
75
88
  end
76
89
 
77
- msg = RDiscount.new(raw_msg).to_html.gsub(/<\/?p[^>]*>/,'')
90
+ msg = RDiscount.new(raw_msg).to_html
91
+ msg.gsub!(/<\/?p[^>]*>/,'') unless para
78
92
 
79
- regex = %r([\w\-/?=.#\(\)]+)
93
+ regex = %r([^ <]+)
80
94
  # generate anchor tags for URLs which don't have anchor tags
81
95
  msg.gsub!(/(?:^(https?:#{regex})|\s(https?:#{regex}))/,' <a href="\2">\2</a>')
96
+
97
+ msg.gsub!(/(?<=\>)https?:#{regex}/) do |x|
98
+
99
+ # unescapeHTML will transform &amp; to &
100
+ url = CGI.unescapeHTML x
101
+ url2 = url.sub(/^https?:\/\//,'').sub(/^www\./,'')
102
+ url3 = url2.length > 33 ? url2[0..33] + '...' : url2
103
+ #" <a href='#{url}'>#{url3}</a>"
104
+ end
105
+
82
106
  # add the target attribute to make all hyperlinks open in a new browser tab
83
107
  msg.gsub!(/<a /,'<a target="_blank" ')
84
108
 
@@ -129,4 +153,4 @@ class MTLite
129
153
 
130
154
  end
131
155
 
132
- end
156
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mtlite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,28 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MDYyNDExMDkzNVoXDTE3MDYyNDExMDkzNVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBALUiATNMjBlFX846paTxxwPtEe3kZRWsyaJ4b0LuB1JAkHbr1Lb/uSKEo/80
19
- n5+gK3eqtyZMICFwx6kKhVIqcab8R11csvf3yfzxnCRgYQMElbhMYgEsracuSVqr
20
- 8gSmpyYtFtbr85/yICepBYDyQNVvtqCvILCVu69PWwFr+vdfY3Ioz+6US2Tlos/E
21
- tJsEC+k2LjSzKQtNTXVun/mjEb/UJeTDZCbt4WnsMPgagGcrF2BNvjLAjvSQvn1r
22
- qOCQh2J+rPL/TqMtHsOdoxq67KMKijB7HjrMoV5rq6Ik1HgHnzQl1rpqijjzee6m
23
- AgHmBtw3OzATCAcxJhKQLdLUFZsCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUZrOh1bgLLQVr07/6Y+IKQyrXzfgwJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAR69dx+Xd
27
- f38+o+olOt7yaTtOLS8n9uLbZM94ciGCYEabKMUlgA+PofBaFOYPd+rRanDOB2SL
28
- ryiG7AanPgEZukcbIC9bN2KfOCcaNGPHiWdXSzQwrrJq4hTvx+6MqsujObwSXMBP
29
- 8AsCMDIA/5/ML4q7Fdh0fM0iV4hyhpLSa7zsSKAykjBVrlV/eBFKgXU6pHGvCLMJ
30
- pBirURRkelsDu2rGEv8Xfosm72CIuxUi8c45bffrmmrgl/PfE5zCnNhtdBYgQBLI
31
- S/vdVb30GmSKtbnJ5lgMXRzFppdweZQMOoEbtLfL7ine6Ty5MxOq7FSffEov7+T9
32
- 1nXp7z0aRWQE3g==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMjIzMTQ1MzMwWhcN
15
+ MjIwMjIzMTQ1MzMwWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDPICvX
17
+ ekFtCC7T84fjH1kM3eAgM4M8+0D/nWMUTL+aZjmNJUhnknZLGX+ltHYMoj+1jX8E
18
+ x0HJqxkKpbOmr1oIj6/iF6Ns1bOamtn9qin5fpvfk6Db9e33Wb0qsC4iNy6IWCEW
19
+ azjrGhBaKrawH/qTIHVpzRqhGAwjDslsT8WEXjMGppRFmQqXoBh/gKa17AuZx1Kb
20
+ oLS1xfdKa8cnRCyMvNfD3tBWxTuQ04lY2IfIuuB2/O4iWs3CvtD2QQI/XC4poDG4
21
+ Fgcocl21w5ALwN33m/5PbA0adYn+wxy9vPwJ45xB10pjB7FYlBK4BBcb8hylUEP2
22
+ OEQqx8MDeTCCUBdz9/cZY4SdpBur6YYmvwth2fFG3dDjQa0RA/JnmanECPdV17jQ
23
+ 342UQRcsPBrq0B5//HjdiS7xOFFP/Lec4B1NLD9tnyrbCQsC1asUwhyTKnZN6Gv4
24
+ ZoOFAEpBN8pHUX7R0zZB0OpwY+HxV7FWvKAiOaKfpHZ8VL20PpWMi7DZ2Q0CAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUUdTDzYti
26
+ v2oK6sH4SxOAL4wBGhIwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAkc9hOBwHoSh3zxQqUT0L1U7A3qrPgL9v3zHVJj7v
29
+ b8lfFtTAZ70yFnmjhDKKJezTxGOg/4gbxskiO4Kf2jdKwV4Of43N9Ag6YCrz5eA5
30
+ 6inRvvjKOnXYdO22Y/eAPTficdlkj5QZw0Qe9Zd9WxhjDWulBaToqwdrZdeeq0/s
31
+ mWYzhQYWrPOS8ozdFSlcAG/QED7txpx50dYzrcafL7oP83wM2bAX4XtZIqbOgZft
32
+ iSNANuPrW+VhvqGo3M8+f+5yYYyS67whR5w85z9TcUT+dPyTGYl6ClNUXFt0vR1i
33
+ HG+QtV9hBiE8GRODZL0uFwL4Cl2EjDBAIbjtqh2fUy1T6A/u7Y23eVL+cnelk/YT
34
+ f6uxrTojqd8rUrVvqz0lhaTd1eoT6kd/u2r7YbzLnvraDnBwiuFAPticmw7JuVpZ
35
+ RpkfFZne43vM6SRQRvmVREEMpk57Mub1ccA9v5eElBuZbfyEO5eMYSc88DkxHCkr
36
+ sfZbXuL/o5TgPyPL7UYvUyoJ
33
37
  -----END CERTIFICATE-----
34
- date: 2016-06-24 00:00:00.000000000 Z
38
+ date: 2021-03-08 00:00:00.000000000 Z
35
39
  dependencies:
36
40
  - !ruby/object:Gem::Dependency
37
41
  name: rdiscount
@@ -57,24 +61,24 @@ dependencies:
57
61
  name: embiggen
58
62
  requirement: !ruby/object:Gem::Requirement
59
63
  requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '0.1'
63
64
  - - ">="
64
65
  - !ruby/object:Gem::Version
65
66
  version: 0.1.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.1'
66
70
  type: :runtime
67
71
  prerelease: false
68
72
  version_requirements: !ruby/object:Gem::Requirement
69
73
  requirements:
70
- - - "~>"
71
- - !ruby/object:Gem::Version
72
- version: '0.1'
73
74
  - - ">="
74
75
  - !ruby/object:Gem::Version
75
76
  version: 0.1.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.1'
76
80
  description:
77
- email: james@r0bertson.co.uk
81
+ email: digital.robertson@gmail.com
78
82
  executables: []
79
83
  extensions: []
80
84
  extra_rdoc_files: []
@@ -100,8 +104,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
104
  version: '0'
101
105
  requirements: []
102
106
  rubyforge_project:
103
- rubygems_version: 2.5.1
107
+ rubygems_version: 2.7.10
104
108
  signing_key:
105
109
  specification_version: 4
106
- summary: mtlite
110
+ summary: Martile Lite generates HTML ideally from 1 line of a condensed kind of markdown
111
+ language.
107
112
  test_files: []
metadata.gz.sig CHANGED
Binary file