maillinks 0.1.5 → 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/bin/maillinks +18 -13
- data/doc/html/maillinks.html +154 -422
- data/doc/man/maillinks.1.gz +0 -0
- data/doc/pdf/maillinks.pdf +0 -0
- data/doc/rst/maillinks.rst +12 -1
- data/lib/basic_logging.rb +201 -0
- data/lib/color_output.rb +65 -0
- data/lib/constants.rb +7 -12
- data/lib/file_checking.rb +4 -11
- data/lib/maillinks.rb +52 -38
- data/maillinks.gemspec +17 -12
- metadata +21 -25
- data/lib/log.conf +0 -53
- data/lib/logging.rb +0 -104
- data/lib/translating.rb +0 -89
- data/lib/translations +0 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 528a601eb7ae4a84df0fad6c48c6bce9f405f591f7ba841406c5702385c3f0e3
|
|
4
|
+
data.tar.gz: 7a4cf22b76902654c65d52cc9a54d9fe385ac6fe5d37b066f53e48a9d718ee21
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d823941066f9e031e8f7be9f310cebfd0a819194bc5920e218e4ddca712f1b4779e44297fd2948748a81fcac31f8a67677497bb8bb69dd6e38d3234504862d8f
|
|
7
|
+
data.tar.gz: 2b54a0831294dad1079ae87cc2ee385fa51c0058453f46d9142ece56f175a083eff586221558066785c730d3af6afb4dcf5bffc0fa4117056715751e02265b45
|
data/bin/maillinks
CHANGED
|
@@ -2,25 +2,30 @@
|
|
|
2
2
|
#encoding: UTF-8
|
|
3
3
|
=begin
|
|
4
4
|
/***************************************************************************
|
|
5
|
-
*
|
|
6
|
-
* *
|
|
5
|
+
* 2015-2026, Michael Uplawski <michael.uplawski@uplawski.eu> *
|
|
7
6
|
* This program is free software; you can redistribute it and/or modify *
|
|
8
|
-
* it under the terms of the
|
|
9
|
-
*
|
|
10
|
-
* (at your option) any later version. *
|
|
7
|
+
* it under the terms of the WTFPL 2.0 or later, see *
|
|
8
|
+
* http://www.wtfpl.net/about/ *
|
|
11
9
|
* *
|
|
12
10
|
* This program is distributed in the hope that it will be useful, *
|
|
13
11
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
14
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
15
|
-
* GNU General Public License for more details. *
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
|
16
13
|
* *
|
|
17
|
-
* You should have received a copy of the GNU General Public License *
|
|
18
|
-
* along with this program; if not, write to the *
|
|
19
|
-
* Free Software Foundation, Inc., *
|
|
20
|
-
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
21
14
|
***************************************************************************/
|
|
22
15
|
=end
|
|
23
|
-
|
|
24
16
|
require_relative '../lib/maillinks'
|
|
17
|
+
require_relative '../lib/basic_logging'
|
|
18
|
+
|
|
19
|
+
self.extend BasicLogging
|
|
20
|
+
|
|
21
|
+
if ARGV.length > 1 && BasicLogging::Levels.keys.include?(ARGV[1].strip.downcase.to_sym )
|
|
22
|
+
$LOG_LEVEL = ARGV[1].strip.downcase.to_sym
|
|
23
|
+
debug 'log level will be ' << $LOG_LEVEL.to_s
|
|
24
|
+
else
|
|
25
|
+
$LOG_LEVEL = :info
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
set_level($LOG_LEVEL)
|
|
29
|
+
|
|
30
|
+
MailLinks.new(ARGV[0])
|
|
25
31
|
|
|
26
|
-
MailLinks.new(*ARGV)
|
data/doc/html/maillinks.html
CHANGED
|
@@ -1,428 +1,160 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"
|
|
2
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
3
2
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
3
|
<head>
|
|
5
|
-
<meta
|
|
6
|
-
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.first {
|
|
31
|
-
/* Override more specific margin styles with "! important". */
|
|
32
|
-
margin-top: 0 ! important }
|
|
33
|
-
|
|
34
|
-
.last, .with-subtitle {
|
|
35
|
-
margin-bottom: 0 ! important }
|
|
36
|
-
|
|
37
|
-
.hidden {
|
|
38
|
-
display: none }
|
|
39
|
-
|
|
40
|
-
.subscript {
|
|
41
|
-
vertical-align: sub;
|
|
42
|
-
font-size: smaller }
|
|
43
|
-
|
|
44
|
-
.superscript {
|
|
45
|
-
vertical-align: super;
|
|
46
|
-
font-size: smaller }
|
|
47
|
-
|
|
48
|
-
a.toc-backref {
|
|
49
|
-
text-decoration: none ;
|
|
50
|
-
color: black }
|
|
51
|
-
|
|
52
|
-
blockquote.epigraph {
|
|
53
|
-
margin: 2em 5em ; }
|
|
54
|
-
|
|
55
|
-
dl.docutils dd {
|
|
56
|
-
margin-bottom: 0.5em }
|
|
57
|
-
|
|
58
|
-
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
|
|
59
|
-
overflow: hidden;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
|
63
|
-
dl.docutils dt {
|
|
64
|
-
font-weight: bold }
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
div.abstract {
|
|
68
|
-
margin: 2em 5em }
|
|
69
|
-
|
|
70
|
-
div.abstract p.topic-title {
|
|
71
|
-
font-weight: bold ;
|
|
72
|
-
text-align: center }
|
|
73
|
-
|
|
74
|
-
div.admonition, div.attention, div.caution, div.danger, div.error,
|
|
75
|
-
div.hint, div.important, div.note, div.tip, div.warning {
|
|
76
|
-
margin: 2em ;
|
|
77
|
-
border: medium outset ;
|
|
78
|
-
padding: 1em }
|
|
79
|
-
|
|
80
|
-
div.admonition p.admonition-title, div.hint p.admonition-title,
|
|
81
|
-
div.important p.admonition-title, div.note p.admonition-title,
|
|
82
|
-
div.tip p.admonition-title {
|
|
83
|
-
font-weight: bold ;
|
|
84
|
-
font-family: sans-serif }
|
|
85
|
-
|
|
86
|
-
div.attention p.admonition-title, div.caution p.admonition-title,
|
|
87
|
-
div.danger p.admonition-title, div.error p.admonition-title,
|
|
88
|
-
div.warning p.admonition-title, .code .error {
|
|
89
|
-
color: red ;
|
|
90
|
-
font-weight: bold ;
|
|
91
|
-
font-family: sans-serif }
|
|
92
|
-
|
|
93
|
-
/* Uncomment (and remove this text!) to get reduced vertical space in
|
|
94
|
-
compound paragraphs.
|
|
95
|
-
div.compound .compound-first, div.compound .compound-middle {
|
|
96
|
-
margin-bottom: 0.5em }
|
|
97
|
-
|
|
98
|
-
div.compound .compound-last, div.compound .compound-middle {
|
|
99
|
-
margin-top: 0.5em }
|
|
100
|
-
*/
|
|
101
|
-
|
|
102
|
-
div.dedication {
|
|
103
|
-
margin: 2em 5em ;
|
|
104
|
-
text-align: center ;
|
|
105
|
-
font-style: italic }
|
|
106
|
-
|
|
107
|
-
div.dedication p.topic-title {
|
|
108
|
-
font-weight: bold ;
|
|
109
|
-
font-style: normal }
|
|
110
|
-
|
|
111
|
-
div.figure {
|
|
112
|
-
margin-left: 2em ;
|
|
113
|
-
margin-right: 2em }
|
|
114
|
-
|
|
115
|
-
div.footer, div.header {
|
|
116
|
-
clear: both;
|
|
117
|
-
font-size: smaller }
|
|
118
|
-
|
|
119
|
-
div.line-block {
|
|
120
|
-
display: block ;
|
|
121
|
-
margin-top: 1em ;
|
|
122
|
-
margin-bottom: 1em }
|
|
123
|
-
|
|
124
|
-
div.line-block div.line-block {
|
|
125
|
-
margin-top: 0 ;
|
|
126
|
-
margin-bottom: 0 ;
|
|
127
|
-
margin-left: 1.5em }
|
|
128
|
-
|
|
129
|
-
div.sidebar {
|
|
130
|
-
margin: 0 0 0.5em 1em ;
|
|
131
|
-
border: medium outset ;
|
|
132
|
-
padding: 1em ;
|
|
133
|
-
background-color: #ffffee ;
|
|
134
|
-
width: 40% ;
|
|
135
|
-
float: right ;
|
|
136
|
-
clear: right }
|
|
137
|
-
|
|
138
|
-
div.sidebar p.rubric {
|
|
139
|
-
font-family: sans-serif ;
|
|
140
|
-
font-size: medium }
|
|
141
|
-
|
|
142
|
-
div.system-messages {
|
|
143
|
-
margin: 5em }
|
|
144
|
-
|
|
145
|
-
div.system-messages h1 {
|
|
146
|
-
color: red }
|
|
147
|
-
|
|
148
|
-
div.system-message {
|
|
149
|
-
border: medium outset ;
|
|
150
|
-
padding: 1em }
|
|
151
|
-
|
|
152
|
-
div.system-message p.system-message-title {
|
|
153
|
-
color: red ;
|
|
154
|
-
font-weight: bold }
|
|
155
|
-
|
|
156
|
-
div.topic {
|
|
157
|
-
margin: 2em }
|
|
158
|
-
|
|
159
|
-
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
|
160
|
-
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
|
161
|
-
margin-top: 0.4em }
|
|
162
|
-
|
|
163
|
-
h1.title {
|
|
164
|
-
text-align: center }
|
|
165
|
-
|
|
166
|
-
h2.subtitle {
|
|
167
|
-
text-align: center }
|
|
168
|
-
|
|
169
|
-
hr.docutils {
|
|
170
|
-
width: 75% }
|
|
171
|
-
|
|
172
|
-
img.align-left, .figure.align-left, object.align-left, table.align-left {
|
|
173
|
-
clear: left ;
|
|
174
|
-
float: left ;
|
|
175
|
-
margin-right: 1em }
|
|
176
|
-
|
|
177
|
-
img.align-right, .figure.align-right, object.align-right, table.align-right {
|
|
178
|
-
clear: right ;
|
|
179
|
-
float: right ;
|
|
180
|
-
margin-left: 1em }
|
|
181
|
-
|
|
182
|
-
img.align-center, .figure.align-center, object.align-center {
|
|
183
|
-
display: block;
|
|
184
|
-
margin-left: auto;
|
|
185
|
-
margin-right: auto;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
table.align-center {
|
|
189
|
-
margin-left: auto;
|
|
190
|
-
margin-right: auto;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
.align-left {
|
|
194
|
-
text-align: left }
|
|
195
|
-
|
|
196
|
-
.align-center {
|
|
197
|
-
clear: both ;
|
|
198
|
-
text-align: center }
|
|
199
|
-
|
|
200
|
-
.align-right {
|
|
201
|
-
text-align: right }
|
|
202
|
-
|
|
203
|
-
/* reset inner alignment in figures */
|
|
204
|
-
div.align-right {
|
|
205
|
-
text-align: inherit }
|
|
206
|
-
|
|
207
|
-
/* div.align-center * { */
|
|
208
|
-
/* text-align: left } */
|
|
209
|
-
|
|
210
|
-
.align-top {
|
|
211
|
-
vertical-align: top }
|
|
212
|
-
|
|
213
|
-
.align-middle {
|
|
214
|
-
vertical-align: middle }
|
|
215
|
-
|
|
216
|
-
.align-bottom {
|
|
217
|
-
vertical-align: bottom }
|
|
218
|
-
|
|
219
|
-
ol.simple, ul.simple {
|
|
220
|
-
margin-bottom: 1em }
|
|
221
|
-
|
|
222
|
-
ol.arabic {
|
|
223
|
-
list-style: decimal }
|
|
224
|
-
|
|
225
|
-
ol.loweralpha {
|
|
226
|
-
list-style: lower-alpha }
|
|
227
|
-
|
|
228
|
-
ol.upperalpha {
|
|
229
|
-
list-style: upper-alpha }
|
|
230
|
-
|
|
231
|
-
ol.lowerroman {
|
|
232
|
-
list-style: lower-roman }
|
|
233
|
-
|
|
234
|
-
ol.upperroman {
|
|
235
|
-
list-style: upper-roman }
|
|
236
|
-
|
|
237
|
-
p.attribution {
|
|
238
|
-
text-align: right ;
|
|
239
|
-
margin-left: 50% }
|
|
240
|
-
|
|
241
|
-
p.caption {
|
|
242
|
-
font-style: italic }
|
|
243
|
-
|
|
244
|
-
p.credits {
|
|
245
|
-
font-style: italic ;
|
|
246
|
-
font-size: smaller }
|
|
247
|
-
|
|
248
|
-
p.label {
|
|
249
|
-
white-space: nowrap }
|
|
250
|
-
|
|
251
|
-
p.rubric {
|
|
252
|
-
font-weight: bold ;
|
|
253
|
-
font-size: larger ;
|
|
254
|
-
color: maroon ;
|
|
255
|
-
text-align: center }
|
|
256
|
-
|
|
257
|
-
p.sidebar-title {
|
|
258
|
-
font-family: sans-serif ;
|
|
259
|
-
font-weight: bold ;
|
|
260
|
-
font-size: larger }
|
|
261
|
-
|
|
262
|
-
p.sidebar-subtitle {
|
|
263
|
-
font-family: sans-serif ;
|
|
264
|
-
font-weight: bold }
|
|
265
|
-
|
|
266
|
-
p.topic-title {
|
|
267
|
-
font-weight: bold }
|
|
268
|
-
|
|
269
|
-
pre.address {
|
|
270
|
-
margin-bottom: 0 ;
|
|
271
|
-
margin-top: 0 ;
|
|
272
|
-
font: inherit }
|
|
273
|
-
|
|
274
|
-
pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
|
275
|
-
margin-left: 2em ;
|
|
276
|
-
margin-right: 2em }
|
|
277
|
-
|
|
278
|
-
pre.code .ln { color: grey; } /* line numbers */
|
|
279
|
-
pre.code, code { background-color: #eeeeee }
|
|
280
|
-
pre.code .comment, code .comment { color: #5C6576 }
|
|
281
|
-
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
|
282
|
-
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
|
283
|
-
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
|
284
|
-
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
|
285
|
-
pre.code .inserted, code .inserted { background-color: #A3D289}
|
|
286
|
-
|
|
287
|
-
span.classifier {
|
|
288
|
-
font-family: sans-serif ;
|
|
289
|
-
font-style: oblique }
|
|
290
|
-
|
|
291
|
-
span.classifier-delimiter {
|
|
292
|
-
font-family: sans-serif ;
|
|
293
|
-
font-weight: bold }
|
|
294
|
-
|
|
295
|
-
span.interpreted {
|
|
296
|
-
font-family: sans-serif }
|
|
297
|
-
|
|
298
|
-
span.option {
|
|
299
|
-
white-space: nowrap }
|
|
300
|
-
|
|
301
|
-
span.pre {
|
|
302
|
-
white-space: pre }
|
|
303
|
-
|
|
304
|
-
span.problematic {
|
|
305
|
-
color: red }
|
|
306
|
-
|
|
307
|
-
span.section-subtitle {
|
|
308
|
-
/* font-size relative to parent (h1..h6 element) */
|
|
309
|
-
font-size: 80% }
|
|
310
|
-
|
|
311
|
-
table.citation {
|
|
312
|
-
border-left: solid 1px gray;
|
|
313
|
-
margin-left: 1px }
|
|
314
|
-
|
|
315
|
-
table.docinfo {
|
|
316
|
-
margin: 2em 4em }
|
|
317
|
-
|
|
318
|
-
table.docutils {
|
|
319
|
-
margin-top: 0.5em ;
|
|
320
|
-
margin-bottom: 0.5em }
|
|
321
|
-
|
|
322
|
-
table.footnote {
|
|
323
|
-
border-left: solid 1px black;
|
|
324
|
-
margin-left: 1px }
|
|
325
|
-
|
|
326
|
-
table.docutils td, table.docutils th,
|
|
327
|
-
table.docinfo td, table.docinfo th {
|
|
328
|
-
padding-left: 0.5em ;
|
|
329
|
-
padding-right: 0.5em ;
|
|
330
|
-
vertical-align: top }
|
|
331
|
-
|
|
332
|
-
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
|
333
|
-
font-weight: bold ;
|
|
334
|
-
text-align: left ;
|
|
335
|
-
white-space: nowrap ;
|
|
336
|
-
padding-left: 0 }
|
|
337
|
-
|
|
338
|
-
/* "booktabs" style (no vertical lines) */
|
|
339
|
-
table.docutils.booktabs {
|
|
340
|
-
border: 0px;
|
|
341
|
-
border-top: 2px solid;
|
|
342
|
-
border-bottom: 2px solid;
|
|
343
|
-
border-collapse: collapse;
|
|
344
|
-
}
|
|
345
|
-
table.docutils.booktabs * {
|
|
346
|
-
border: 0px;
|
|
347
|
-
}
|
|
348
|
-
table.docutils.booktabs th {
|
|
349
|
-
border-bottom: thin solid;
|
|
350
|
-
text-align: left;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
|
354
|
-
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
|
355
|
-
font-size: 100% }
|
|
356
|
-
|
|
357
|
-
ul.auto-toc {
|
|
358
|
-
list-style-type: none }
|
|
359
|
-
|
|
360
|
-
</style>
|
|
4
|
+
<meta name="generator" content="vim - Vi Improved, a programmer's editor; HTML Tidy for Linux version 5.9.20
|
|
5
|
+
"/>
|
|
6
|
+
<meta charset="utf-8" />
|
|
7
|
+
<link rel="preload" as="font" crossorigin="" href=
|
|
8
|
+
"https://www.uplawski.eu/fonts/Classica/Classica-Book.ttf" type=
|
|
9
|
+
"font/ttf" />
|
|
10
|
+
<link rel="preload" as="font" crossorigin="" href=
|
|
11
|
+
"https://www.uplawski.eu/fonts/Classica/Classica-Bold.ttf" type=
|
|
12
|
+
"font/ttf" />
|
|
13
|
+
<link rel="preload" as="font" crossorigin="" href=
|
|
14
|
+
"https://www.uplawski.eu/fonts/Classica/Classica-BookOblique.ttf"
|
|
15
|
+
type="font/ttf" />
|
|
16
|
+
<link rel="preload" as="font" crossorigin="" href=
|
|
17
|
+
"https://www.uplawski.eu/fonts/AnonymousPro/Anonymous Pro.ttf"
|
|
18
|
+
type="font/ttf" />
|
|
19
|
+
<link rel="preload" as="font" crossorigin="" href=
|
|
20
|
+
"https://www.uplawski.eu/fonts/Fertigo_PRO.otf" type=
|
|
21
|
+
"font/otf" />
|
|
22
|
+
<link rel="icon" type="/image/x-icon" href=
|
|
23
|
+
"images/favicon_Schreibfeder.ico" />
|
|
24
|
+
<meta name="viewport" content=
|
|
25
|
+
"width=device-width, initial-scale=1" />
|
|
26
|
+
<title>Maillinks</title>
|
|
27
|
+
<link rel="stylesheet" href="maillinks.css" type="text/css" />
|
|
361
28
|
</head>
|
|
362
29
|
<body>
|
|
363
|
-
<
|
|
364
|
-
<h1 class="title">Maillinks</h1>
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
<
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
</
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
<p>
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
<
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
<
|
|
403
|
-
<
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
<
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
<
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
</
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
30
|
+
<main id="maillinks">
|
|
31
|
+
<h1 class="title">Maillinks</h1>
|
|
32
|
+
|
|
33
|
+
<p class="subtitle" id=
|
|
34
|
+
"print-out-the-urls-of-hyperlinks-in-html-mail">Print out the
|
|
35
|
+
URLs of hyperlinks in HTML-mail.</p>
|
|
36
|
+
|
|
37
|
+
<section id="synopsis">
|
|
38
|
+
<h2>Synopsis</h2>
|
|
39
|
+
|
|
40
|
+
<blockquote>
|
|
41
|
+
<p>maillinks [mail-file]</p>
|
|
42
|
+
</blockquote>
|
|
43
|
+
|
|
44
|
+
<p>or</p>
|
|
45
|
+
|
|
46
|
+
<blockquote>
|
|
47
|
+
<p>cat [mail-file] | maillinks</p>
|
|
48
|
+
</blockquote>
|
|
49
|
+
</section>
|
|
50
|
+
|
|
51
|
+
<section id="description">
|
|
52
|
+
<h2>Description</h2>
|
|
53
|
+
|
|
54
|
+
<p>In a plain text email message, you will recognize URLs
|
|
55
|
+
easily. In HTML-mails they are most of the time part of a
|
|
56
|
+
link-tag and thus hidden by the caption text which is shown
|
|
57
|
+
instead. Not only because, nowadays, UBE and UCE are composed
|
|
58
|
+
with HTML, but in any case, before you take any risks, you
|
|
59
|
+
should be aware of where the click on such a link will lead
|
|
60
|
+
you. Hyperlinks may include directives which are likely to be
|
|
61
|
+
addressed to a remotely running application.</p>
|
|
62
|
+
|
|
63
|
+
<p><em>Maillinks</em> will find the URLs “behind” any
|
|
64
|
+
hyperlink and show it in a footnote below the email-text. You
|
|
65
|
+
can scrutinize the URL and find information about the
|
|
66
|
+
destination, before you engage your web-browser or other tool
|
|
67
|
+
to follow a link.</p>
|
|
68
|
+
|
|
69
|
+
<section id="integration-in-mail-clients">
|
|
70
|
+
<h3>Integration in mail-clients</h3>
|
|
71
|
+
|
|
72
|
+
<p>You can pipe in an email-file to maillinks and thus
|
|
73
|
+
create macros, where the functionality is present in a
|
|
74
|
+
mail-client. In the Mutt user-agent, to define a shortcut,
|
|
75
|
+
you note the following lines in your .muttrc file:</p>
|
|
76
|
+
|
|
77
|
+
<blockquote>
|
|
78
|
+
<p>macro index M "|maillinks -\n" "create link-list"</p>
|
|
79
|
+
|
|
80
|
+
<p>macro pager M "|maillinks -\n" "create link-list"</p>
|
|
81
|
+
</blockquote>
|
|
82
|
+
|
|
83
|
+
<p>Now you can push the <em>M</em> key either in the pager
|
|
84
|
+
or in the mail index to pipe in a selected mail to
|
|
85
|
+
maillinks.</p>
|
|
86
|
+
|
|
87
|
+
<p>Consult the documentation of your own mail-client to
|
|
88
|
+
find out if, and how macros or similar options can be
|
|
89
|
+
configured.</p>
|
|
90
|
+
</section>
|
|
91
|
+
</section>
|
|
92
|
+
|
|
93
|
+
<section id="options">
|
|
94
|
+
<h2>Options</h2>
|
|
95
|
+
|
|
96
|
+
<p><em>Maillinks</em> does currently not interpret any
|
|
97
|
+
command line arguments other than the name of a mail-file to
|
|
98
|
+
analyze.</p>
|
|
99
|
+
</section>
|
|
100
|
+
|
|
101
|
+
<section id="other-information">
|
|
102
|
+
<h2>Other Information</h2>
|
|
103
|
+
|
|
104
|
+
<dl class="simple">
|
|
105
|
+
<dt>Source-code and Development</dt>
|
|
106
|
+
|
|
107
|
+
<dd>
|
|
108
|
+
<p><em>Maillinks</em> has been developed in Ruby and is
|
|
109
|
+
published as a Ruby-Gem. If you have installed the
|
|
110
|
+
program from the Gem-file, then, to access the
|
|
111
|
+
source-code, find Maillinks in the Gem-directory for your
|
|
112
|
+
Ruby-version. All source-files found are in the
|
|
113
|
+
sub-directories <em>/bin</em> and <em>/lib</em>.
|
|
114
|
+
Alternatively, you can unpack the Gem-file with <em>tar
|
|
115
|
+
-xf</em>, then decompress the data-archive with <em>tar
|
|
116
|
+
-xzf</em>.</p>
|
|
117
|
+
</dd>
|
|
118
|
+
|
|
119
|
+
<dt>Version</dt>
|
|
120
|
+
|
|
121
|
+
<dd>
|
|
122
|
+
<p>0.1.2 (May 2017)</p>
|
|
123
|
+
</dd>
|
|
124
|
+
|
|
125
|
+
<dt>License</dt>
|
|
126
|
+
|
|
127
|
+
<dd>
|
|
128
|
+
<p><em>Maillinks</em> is published under the conditions
|
|
129
|
+
of the GNU General Public License, version 3.0 or
|
|
130
|
+
later.</p>
|
|
131
|
+
</dd>
|
|
132
|
+
|
|
133
|
+
<dt>Author</dt>
|
|
134
|
+
|
|
135
|
+
<dd>
|
|
136
|
+
<p>Michael Uplawski <<a class="reference external"
|
|
137
|
+
href=
|
|
138
|
+
"mailto:michael.uplawski@uplawski.eu">michael.uplawski@uplawski.eu</a>></p>
|
|
139
|
+
</dd>
|
|
140
|
+
</dl>
|
|
141
|
+
|
|
142
|
+
<section id="this-document">
|
|
143
|
+
<h3>This document</h3>
|
|
144
|
+
|
|
145
|
+
<p>©Michael Uplawski <<a class="reference external"
|
|
146
|
+
href="mailto:michael.uplawski@uplawski.eu">michael.uplawski@uplawski.eu</a>></p>
|
|
147
|
+
|
|
148
|
+
<p>License: <a class="reference external" href=
|
|
149
|
+
"https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND
|
|
150
|
+
4.0</a></p>
|
|
151
|
+
|
|
152
|
+
<p>Date: 2026-04-28</p>
|
|
153
|
+
|
|
154
|
+
<p><strong>Ω</strong>
|
|
155
|
+
</p>
|
|
156
|
+
</section>
|
|
157
|
+
</section>
|
|
158
|
+
</main>
|
|
427
159
|
</body>
|
|
428
160
|
</html>
|
data/doc/man/maillinks.1.gz
CHANGED
|
Binary file
|
data/doc/pdf/maillinks.pdf
CHANGED
|
Binary file
|
data/doc/rst/maillinks.rst
CHANGED
|
@@ -70,5 +70,16 @@ License
|
|
|
70
70
|
Author
|
|
71
71
|
Michael Uplawski <michael.uplawski@uplawski.eu>
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
This document
|
|
74
|
+
-------------
|
|
75
|
+
.. _CC By-ND 4.0: https://creativecommons.org/licenses/by-nd/4.0/
|
|
76
|
+
.. |date| date::
|
|
77
|
+
|
|
78
|
+
©Michael Uplawski <michael.uplawski@uplawski.eu>
|
|
79
|
+
|
|
80
|
+
License: `CC BY-ND 4.0`_
|
|
81
|
+
|
|
82
|
+
Date: |date|
|
|
83
|
+
|
|
84
|
+
**Ω**
|
|
74
85
|
|