flnews_post_proc 1.96.1 → 1.97
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/doc/fr/html/flnews_post_proc.html +64 -73
- data/doc/fr/man/flnews_post_proc.1.gz +0 -0
- data/doc/fr/pdf/flnews_post_proc.pdf +0 -0
- data/doc/fr/rst/flnews_post_proc.rst +20 -1
- data/doc/html/flnews_post_proc.html +365 -333
- data/doc/man/flnews_post_proc.1.gz +0 -0
- data/doc/pdf/flnews_post_proc.pdf +0 -0
- data/doc/rst/flnews_post_proc.rst +273 -259
- data/lib/bak_basic_logging.rb +202 -0
- data/lib/basic_logging.rb +62 -14
- data/lib/body.rb +1 -0
- data/lib/color_output.rb +41 -4
- data/lib/headers.rb +7 -4
- data/lib/version.rb +2 -2
- metadata +5 -5
|
@@ -1,67 +1,28 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
2
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
3
3
|
<head>
|
|
4
|
-
<meta name="generator" content="vim - Vi Improved, a programmer's editor; HTML Tidy for Linux version 5.
|
|
4
|
+
<meta name="generator" content="vim - Vi Improved, a programmer's editor; HTML Tidy for Linux version 5.9.20
|
|
5
5
|
"/>
|
|
6
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/Fertigo_PRO.otf" type=
|
|
18
|
+
"font/otf" />
|
|
19
|
+
<link rel="icon" type="/image/x-icon" href=
|
|
20
|
+
"images/favicon_Schreibfeder.ico" />
|
|
7
21
|
<meta name="viewport" content=
|
|
8
22
|
"width=device-width, initial-scale=1" />
|
|
9
23
|
<title>Flnews_post_proc</title>
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/*
|
|
14
|
-
:Author: Michael Uplawski
|
|
15
|
-
:Contact: michael.uplawski@uplawski.eu
|
|
16
|
-
:License: WTFPL 2.0, see http://www.wtfpl.net/about/
|
|
17
|
-
|
|
18
|
-
Stylesheet for use with Docutils.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
body {
|
|
22
|
-
background-color:#e0f0c0;
|
|
23
|
-
font-family: Verdana,Helvetica,Univers;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
p {width: 80%;}
|
|
27
|
-
|
|
28
|
-
h1.title {color:#800080;font-size:2em;}
|
|
29
|
-
h2 {color:darkblue;font-size:1.5em;}
|
|
30
|
-
h3 {color:#3030f0;font-size:1em;}
|
|
31
|
-
|
|
32
|
-
nav:before {
|
|
33
|
-
content:'Contents';
|
|
34
|
-
font-weight:bold;
|
|
35
|
-
color:darkblue;
|
|
36
|
-
font-size:1.5em;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
p, ul.simple, ol.simple, dt {margin-left:2em;}
|
|
40
|
-
dd {margin-left:4em;}
|
|
41
|
-
|
|
42
|
-
/* correct left margin of nested block tags*/
|
|
43
|
-
dd p, li p {margin-left:0;}
|
|
44
|
-
dd * ul {margin-left:0 ! important; }
|
|
45
|
-
dd ul {margin-left:0 ! important; }
|
|
46
|
-
dd dl dt, dd dl dd {margin-left:0 ! important;}
|
|
47
|
-
|
|
48
|
-
em {color:#000080;
|
|
49
|
-
background-color:#ffffa0;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
pre.literal-block {
|
|
53
|
-
margin-left:2em;
|
|
54
|
-
font-family:Verdana,Helvetica,Univers;
|
|
55
|
-
}8
|
|
56
|
-
blockquote {background-color:#ffc090;
|
|
57
|
-
padding:0.5em;
|
|
58
|
-
width:80%;
|
|
59
|
-
border-radius:0.5em;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
/*]]>*/
|
|
64
|
-
</style>
|
|
24
|
+
<link rel="stylesheet" href="flnews_post_proc.css" type=
|
|
25
|
+
"text/css" />
|
|
65
26
|
</head>
|
|
66
27
|
<body class="with-toc">
|
|
67
28
|
<main id="flnews-post-proc">
|
|
@@ -70,7 +31,7 @@
|
|
|
70
31
|
<p class="subtitle" id=
|
|
71
32
|
"post-processor-for-the-flnews-newsreader">Post-Processor for
|
|
72
33
|
the <a class="reference external" href=
|
|
73
|
-
"https://micha.freeshell.org/flnews
|
|
34
|
+
"https://micha.freeshell.org/flnews">flnews</a> Newsreader</p>
|
|
74
35
|
|
|
75
36
|
<nav class="contents local" id="contents" role="doc-toc">
|
|
76
37
|
<ul class="simple">
|
|
@@ -168,6 +129,12 @@
|
|
|
168
129
|
"toc-entry-14">Author</a>
|
|
169
130
|
</p>
|
|
170
131
|
</li>
|
|
132
|
+
|
|
133
|
+
<li>
|
|
134
|
+
<p><a class="reference internal" href=
|
|
135
|
+
"#this-document" id="toc-entry-15">This document</a>
|
|
136
|
+
</p>
|
|
137
|
+
</li>
|
|
171
138
|
</ul>
|
|
172
139
|
</li>
|
|
173
140
|
</ul>
|
|
@@ -177,22 +144,26 @@
|
|
|
177
144
|
<span id="synopsis"></span>
|
|
178
145
|
<h2>SYNOPSIS</h2>
|
|
179
146
|
|
|
180
|
-
<
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
147
|
+
<blockquote>
|
|
148
|
+
<p>The post-processor is invoked by piping an article into
|
|
149
|
+
it. This typically occurs automatically when the
|
|
150
|
+
"post_proc" variable is set to
|
|
151
|
+
<strong>flnews_post_proc</strong> in the flnews
|
|
152
|
+
configuration file.</p>
|
|
184
153
|
|
|
185
|
-
|
|
186
|
-
|
|
154
|
+
<p>For testing purposes, you can also pipe locally stored
|
|
155
|
+
articles into the post-processor using a command like:</p>
|
|
187
156
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
157
|
+
<blockquote>
|
|
158
|
+
<p><strong>flnews_post_proc</strong> < article</p>
|
|
159
|
+
</blockquote>
|
|
191
160
|
|
|
192
|
-
|
|
161
|
+
<p>.or:</p>
|
|
193
162
|
|
|
194
|
-
|
|
195
|
-
|
|
163
|
+
<blockquote>
|
|
164
|
+
<p>cat article.txt |
|
|
165
|
+
<strong>flnews_post_proc</strong></p>
|
|
166
|
+
</blockquote>
|
|
196
167
|
</blockquote>
|
|
197
168
|
</section>
|
|
198
169
|
|
|
@@ -200,138 +171,149 @@
|
|
|
200
171
|
<span id="description"></span>
|
|
201
172
|
<h2>DESCRIPTION</h2>
|
|
202
173
|
|
|
203
|
-
<
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
174
|
+
<blockquote>
|
|
175
|
+
<p>The flnews newsreader fully supports Usenet access,
|
|
176
|
+
enabling the reception and reading of articles from
|
|
177
|
+
newsgroups, as well as composing and posting them.</p>
|
|
178
|
+
|
|
179
|
+
<p>When comparing various news clients, differences will
|
|
180
|
+
often influence your choice of preferred client. Flnews
|
|
181
|
+
distinguishes itself by not only offering control over its
|
|
182
|
+
internal behavior, but also by allowing you to modify
|
|
183
|
+
outgoing posts just before they are sent to the configured
|
|
184
|
+
NNTP server.</p>
|
|
185
|
+
|
|
186
|
+
<p>The <strong>flnews_post_proc</strong> program can be
|
|
187
|
+
used to modify and enhance a post in ways that flnews alone
|
|
188
|
+
cannot. It is configurable and may meet the needs of some
|
|
189
|
+
Usenet users, though it is primarily intended as a starting
|
|
190
|
+
point for creating your own custom solutions.</p>
|
|
191
|
+
</blockquote>
|
|
219
192
|
|
|
220
193
|
<section id="limitations-of-basic-newsreaders-1">
|
|
221
194
|
<span id="limitations-of-basic-newsreaders"></span>
|
|
222
195
|
<h3>Limitations of Basic Newsreaders</h3>
|
|
223
196
|
|
|
224
|
-
<
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
197
|
+
<blockquote>
|
|
198
|
+
<p>While flnews creates posts that are generally complete
|
|
199
|
+
and ready for submission, there are instances where users
|
|
200
|
+
might find the output unsatisfactory for arbitrary
|
|
201
|
+
reasons:</p>
|
|
228
202
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
203
|
+
<ul class="simple">
|
|
204
|
+
<li>
|
|
205
|
+
<p>If you're posting to different newsgroups in
|
|
206
|
+
multiple languages, the introductory line referencing
|
|
207
|
+
a prior post can only be set once in the flnews
|
|
208
|
+
configuration file. As a result, posts to a French
|
|
209
|
+
newsgroup, for example, may start with an
|
|
210
|
+
introduction in English. The post-processor can
|
|
211
|
+
address this by setting specific introductory lines
|
|
212
|
+
for each newsgroup.</p>
|
|
213
|
+
</li>
|
|
240
214
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
215
|
+
<li>
|
|
216
|
+
<p>Similar issues arise when you set a standard
|
|
217
|
+
signature and want it to vary based on the newsgroup.
|
|
218
|
+
The post-processor allows different signatures to be
|
|
219
|
+
used for different newsgroups, and you can even
|
|
220
|
+
randomize the selection from a list of signatures
|
|
221
|
+
stored in a file.</p>
|
|
222
|
+
</li>
|
|
249
223
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
224
|
+
<li>
|
|
225
|
+
<p>Custom headers, such as GnuPG key IDs or your
|
|
226
|
+
language proficiency, can also be added to posts,
|
|
227
|
+
though signatures may be a better alternative. Custom
|
|
228
|
+
headers can be defined in the configuration file and
|
|
229
|
+
will be added to outgoing posts.</p>
|
|
230
|
+
</li>
|
|
257
231
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
"X-No-Archive" header has limited effectiveness, and it
|
|
268
|
-
is up to server operators whether or not to honor
|
|
269
|
-
it.</p>
|
|
270
|
-
</li>
|
|
232
|
+
<li>
|
|
233
|
+
<p>Headers like "Archive" and "X-No-Archive" are
|
|
234
|
+
sometimes set to prevent an article from being
|
|
235
|
+
indexed by search engines (e.g., Google). For
|
|
236
|
+
example, test posts likely don't need to be included
|
|
237
|
+
in search results. The post-processor can apply both
|
|
238
|
+
headers to all posts sent to certain newsgroups.</p>
|
|
239
|
+
</li>
|
|
240
|
+
</ul>
|
|
271
241
|
|
|
272
|
-
<
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
242
|
+
<p><strong>NOTE</strong>: As of 2024, the "X-No-Archive"
|
|
243
|
+
header has limited effectiveness, and it is up to server
|
|
244
|
+
operators whether or not to honor it.</p>
|
|
245
|
+
|
|
246
|
+
<ul class="simple">
|
|
247
|
+
<li>
|
|
248
|
+
<p>Posts that include many references to other posts
|
|
249
|
+
or URLs can become cluttered. The post-processor can
|
|
250
|
+
convert marked text into footnotes, similar to the
|
|
251
|
+
<ref/> link format used in Wikipedia, with the
|
|
252
|
+
delimiter configurable in the configuration file.
|
|
253
|
+
Example (using %=): "This is an object %=and this
|
|
254
|
+
becomes the footnote, describing the object
|
|
255
|
+
further=%". See also the hints under <a class=
|
|
256
|
+
"reference internal" href=
|
|
257
|
+
"#editing-footnotes">EDITING FOOTNOTES</a>,
|
|
258
|
+
below.</p>
|
|
259
|
+
</li>
|
|
260
|
+
</ul>
|
|
261
|
+
</blockquote>
|
|
285
262
|
</section>
|
|
286
263
|
|
|
287
264
|
<section id="dialog-for-overriding-settings-1">
|
|
288
265
|
<span id="dialog-for-overriding-settings"></span>
|
|
289
266
|
<h3>Dialog for Overriding Settings</h3>
|
|
290
267
|
|
|
291
|
-
<
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
<
|
|
305
|
-
<
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
268
|
+
<blockquote>
|
|
269
|
+
<p><strong>IMPORTANT</strong>: As of version 1.72, YAD or
|
|
270
|
+
Zenity cannot be used for the dialog interface.</p>
|
|
271
|
+
|
|
272
|
+
<p>Before the post-processor runs, a dialog can be
|
|
273
|
+
displayed to allow users to <strong>disable</strong>
|
|
274
|
+
certain <a class="reference internal" href=
|
|
275
|
+
"#configuration">CONFIGURATION</a> options. If Whiptail
|
|
276
|
+
or xterm are available, you can choose to disable the
|
|
277
|
+
following options. You <strong>cannot</strong> enable
|
|
278
|
+
options that haven't already been set in the
|
|
279
|
+
configuration.</p>
|
|
280
|
+
|
|
281
|
+
<blockquote>
|
|
282
|
+
<ul class="simple">
|
|
283
|
+
<li>
|
|
284
|
+
<p>Signatures (if set in the <a class=
|
|
285
|
+
"reference internal" href=
|
|
286
|
+
"#configuration">CONFIGURATION</a>) can be
|
|
287
|
+
<strong>ignored</strong>. A default signature will
|
|
288
|
+
be used, or no signature at all.</p>
|
|
289
|
+
</li>
|
|
290
|
+
|
|
291
|
+
<li>
|
|
292
|
+
<p>Custom headers can be
|
|
293
|
+
<strong>omitted</strong>.</p>
|
|
294
|
+
</li>
|
|
295
|
+
|
|
296
|
+
<li>
|
|
297
|
+
<p>The "Archive" and "X-No-Archive" headers can be
|
|
298
|
+
<strong>ignored</strong> if set for the current
|
|
299
|
+
newsgroup.</p>
|
|
300
|
+
</li>
|
|
301
|
+
|
|
302
|
+
<li>
|
|
303
|
+
<p>Logging can be <strong>disabled</strong>, if
|
|
304
|
+
enabled.</p>
|
|
305
|
+
</li>
|
|
306
|
+
</ul>
|
|
307
|
+
</blockquote>
|
|
308
|
+
|
|
309
|
+
<p>Pressing Esc or the Cancel button on the dialog will
|
|
310
|
+
interrupt the process, and flnews will not post the
|
|
311
|
+
article.</p>
|
|
312
|
+
|
|
313
|
+
<p>To disable the dialog entirely (and apply all
|
|
314
|
+
configured options without further interaction), set the
|
|
315
|
+
<strong>OVERRIDE_CONFIG</strong> option.</p>
|
|
316
|
+
</blockquote>
|
|
335
317
|
</section>
|
|
336
318
|
</section>
|
|
337
319
|
|
|
@@ -339,27 +321,29 @@
|
|
|
339
321
|
<span id="configuration"></span>
|
|
340
322
|
<h2>CONFIGURATION</h2>
|
|
341
323
|
|
|
342
|
-
<
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
324
|
+
<blockquote>
|
|
325
|
+
<p>Upon first execution of the program, a copy of the
|
|
326
|
+
original configuration file is created in
|
|
327
|
+
<em>/home/[user]/.flnews_post_proc.conf</em>. This file is
|
|
328
|
+
used thereafter. Deleting it will cause the file to be
|
|
329
|
+
recreated, but any custom changes will be lost.</p>
|
|
347
330
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
331
|
+
<p>The configuration file uses YAML syntax and includes
|
|
332
|
+
detailed explanations. The variables within it fall into
|
|
333
|
+
two categories:</p>
|
|
351
334
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
335
|
+
<ol class="arabic simple">
|
|
336
|
+
<li>
|
|
337
|
+
<p>Variables that represent values originally set by
|
|
338
|
+
flnews, which can be used or replaced. These elements
|
|
339
|
+
are typically captured using regular expressions.</p>
|
|
340
|
+
</li>
|
|
358
341
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
342
|
+
<li>
|
|
343
|
+
<p>Variables that define new or modified content.</p>
|
|
344
|
+
</li>
|
|
345
|
+
</ol>
|
|
346
|
+
</blockquote>
|
|
363
347
|
|
|
364
348
|
<section id="configuration-options">
|
|
365
349
|
<h3>Configuration Options</h3>
|
|
@@ -582,25 +566,23 @@ comp.*: /home/[user]/.my_sigs</pre>
|
|
|
582
566
|
<p>EXAMPLE: No</p>
|
|
583
567
|
</blockquote>
|
|
584
568
|
|
|
585
|
-
<
|
|
586
|
-
|
|
587
|
-
</dt>
|
|
569
|
+
<p><strong>USE_OLD</strong>
|
|
570
|
+
</p>
|
|
588
571
|
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
572
|
+
<blockquote>
|
|
573
|
+
<p>A boolean constant that controls whether
|
|
574
|
+
<strong>flnews_post_proc</strong> handles subject
|
|
575
|
+
changes. See <a class="reference internal" href=
|
|
576
|
+
"#subject-changes">Subject changes</a> for the
|
|
577
|
+
details.</p>
|
|
595
578
|
|
|
596
|
-
|
|
597
|
-
|
|
579
|
+
<p>Set to "false" or leave empty to ignore subject
|
|
580
|
+
changes.</p>
|
|
598
581
|
|
|
599
|
-
|
|
582
|
+
<p>DEFAULT: false</p>
|
|
600
583
|
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
</dl>
|
|
584
|
+
<p>EXAMPLE: yes</p>
|
|
585
|
+
</blockquote>
|
|
604
586
|
</section>
|
|
605
587
|
</section>
|
|
606
588
|
|
|
@@ -612,173 +594,223 @@ comp.*: /home/[user]/.my_sigs</pre>
|
|
|
612
594
|
<span id="subject-changes"></span>
|
|
613
595
|
<h3>Subject changes:</h3>
|
|
614
596
|
|
|
615
|
-
<
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
597
|
+
<blockquote>
|
|
598
|
+
<p><strong>flnews_post_proc</strong> can handle subject
|
|
599
|
+
changes, provided the configuration option
|
|
600
|
+
<strong>USE_OLD</strong> is set to <strong>true</strong>.
|
|
601
|
+
In this case, additional prefixes are recognized (flnews
|
|
602
|
+
handles "Was:" on its own). The additional prefixes are
|
|
603
|
+
case insensitive variations of the German "<em>War:</em>"
|
|
604
|
+
and a french "<em>Était:</em>", with or without Accent.
|
|
605
|
+
The french prefix can also contain 1 space before the
|
|
606
|
+
colon.</p>
|
|
607
|
+
|
|
608
|
+
<p>When you write a follow-up to an Article with
|
|
609
|
+
<em>Subject: This topic (Was: old topic)</em>
|
|
610
|
+
<strong>flnews_post_proc</strong> will remove the part in
|
|
611
|
+
parenthesis, also (War: old topic) and (était : old
|
|
612
|
+
topic).</p>
|
|
613
|
+
|
|
614
|
+
<p>This necessitates that <strong>your own subject
|
|
615
|
+
changes must not use one of those prefixes</strong>.
|
|
616
|
+
Instead, use <em>(Old: ...)</em> like in <em>Subject: new
|
|
617
|
+
topic (Old: previous topic)</em></p>
|
|
618
|
+
|
|
619
|
+
<p><strong>flnews_post_proc</strong> will replace Old: by
|
|
620
|
+
Was: in the posted article.</p>
|
|
621
|
+
|
|
622
|
+
<p><strong>Important</strong>: When <em>USE_OLD</em> is
|
|
623
|
+
true, none of the recognized prefixes will survive. If
|
|
624
|
+
you forget to use <em>Old</em> instead, the subject
|
|
625
|
+
change will not be recognizable as such, your article
|
|
626
|
+
will only carry the new subject.</p>
|
|
627
|
+
|
|
628
|
+
<p>Leave the option USE_OLD untouched or set it to
|
|
629
|
+
<strong>false</strong> to ignore subject changes.</p>
|
|
630
|
+
|
|
631
|
+
<p><strong>NOTE</strong> that Flnews may continue to
|
|
632
|
+
remove the part of the subject line that is prefixed with
|
|
633
|
+
<em>(Was:</em> or <em>(was:</em>.</p>
|
|
634
|
+
</blockquote>
|
|
645
635
|
</section>
|
|
646
636
|
|
|
647
637
|
<section id="editing-footnotes-1">
|
|
648
638
|
<span id="editing-footnotes"></span>
|
|
649
639
|
<h3>Editing footnotes</h3>
|
|
650
640
|
|
|
651
|
-
<
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
641
|
+
<blockquote>
|
|
642
|
+
<p>Writing footnote text (or URL references) inline while
|
|
643
|
+
composing an article may be tempting, but it will likely
|
|
644
|
+
break your line formatting. It's difficult to predict
|
|
645
|
+
line lengths after footnotes are automatically moved to
|
|
646
|
+
the end. Instead, write your complete article first, then
|
|
647
|
+
add footnotes just before posting. This lets you
|
|
648
|
+
anticipate how the final article will look after footnote
|
|
649
|
+
markers replace the inline text (see <a class=
|
|
650
|
+
"reference internal" href=
|
|
651
|
+
"#reference-format">REFERENCE_FORMAT</a>, above).</p>
|
|
652
|
+
</blockquote>
|
|
660
653
|
</section>
|
|
661
654
|
|
|
662
655
|
<section id="signatures-in-supersedes-1">
|
|
663
656
|
<span id="signatures-in-supersedes"></span>
|
|
664
657
|
<h3>Signatures in Supersedes</h3>
|
|
665
658
|
|
|
666
|
-
<
|
|
667
|
-
|
|
668
|
-
|
|
659
|
+
<blockquote>
|
|
660
|
+
<p>When superseding an existing post, the post-processor
|
|
661
|
+
will NOT automatically add a signature. This preserves
|
|
662
|
+
the original post content as much as possible.</p>
|
|
669
663
|
|
|
670
|
-
|
|
664
|
+
<p>To retain the signature from the original post:</p>
|
|
671
665
|
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
666
|
+
<ol class="arabic simple">
|
|
667
|
+
<li>
|
|
668
|
+
<p>In flnews, select the entire article body with the
|
|
669
|
+
mouse—from the first line (including any
|
|
670
|
+
introductions) down to the last line of the
|
|
671
|
+
signature.</p>
|
|
672
|
+
</li>
|
|
678
673
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
674
|
+
<li>
|
|
675
|
+
<p>From the Article menu, select
|
|
676
|
+
<strong>Supersede</strong>.</p>
|
|
677
|
+
</li>
|
|
683
678
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
679
|
+
<li>
|
|
680
|
+
<p>Edit the article text as needed. The signature
|
|
681
|
+
will be included in te editable text (normally,
|
|
682
|
+
flnews strips signatures before opening the
|
|
683
|
+
editor).</p>
|
|
684
|
+
</li>
|
|
689
685
|
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
686
|
+
<li>
|
|
687
|
+
<p>Send the article.</p>
|
|
688
|
+
</li>
|
|
689
|
+
</ol>
|
|
694
690
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
691
|
+
<p><strong>Note:</strong> The <a class=
|
|
692
|
+
"reference internal" href="#override-dialog">override
|
|
693
|
+
dialog</a> (see above) does not affect signatures in
|
|
694
|
+
superseding posts.</p>
|
|
695
|
+
</blockquote>
|
|
698
696
|
</section>
|
|
699
697
|
|
|
700
698
|
<section id="testing-1">
|
|
701
699
|
<span id="testing"></span>
|
|
702
700
|
<h3>Testing</h3>
|
|
703
701
|
|
|
704
|
-
<
|
|
705
|
-
|
|
702
|
+
<blockquote>
|
|
703
|
+
<p>You can verify the post-processor’s effect by using
|
|
704
|
+
one of two methods:</p>
|
|
706
705
|
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
706
|
+
<ol class="arabic">
|
|
707
|
+
<li>
|
|
708
|
+
<p>Pipe a saved post into the program:</p>
|
|
710
709
|
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
710
|
+
<p><strong>:~$ /usr/local/bin/[post-processor] <
|
|
711
|
+
[test-article]</strong>
|
|
712
|
+
</p>
|
|
713
|
+
</li>
|
|
714
|
+
</ol>
|
|
714
715
|
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
</li>
|
|
716
|
+
<p>This will show the modified article, and you can pipe
|
|
717
|
+
it into another file for further testing.</p>
|
|
718
718
|
|
|
719
|
-
<
|
|
720
|
-
<
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
719
|
+
<ol class="arabic simple" start="2">
|
|
720
|
+
<li>
|
|
721
|
+
<p>Post directly to a test newsgroup (e.g.,
|
|
722
|
+
alt.test). This is essential before posting to real
|
|
723
|
+
newsgroups, especially when the post-processor will
|
|
724
|
+
alter the article.</p>
|
|
725
|
+
</li>
|
|
726
|
+
</ol>
|
|
727
|
+
</blockquote>
|
|
726
728
|
</section>
|
|
727
729
|
|
|
728
730
|
<section id="source-code-1">
|
|
729
731
|
<span id="source-code"></span>
|
|
730
732
|
<h3>Source Code</h3>
|
|
731
733
|
|
|
732
|
-
<
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
734
|
+
<blockquote>
|
|
735
|
+
<p>The gem file for the program, available via the gem
|
|
736
|
+
utility or <a class="reference external" href=
|
|
737
|
+
"https://rubygems.org/gems/flnews_post_proc">rubygems.org</a>,
|
|
738
|
+
contains all the source code and documentation (this page
|
|
739
|
+
included). To extract it, do the following:</p>
|
|
737
740
|
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
741
|
+
<ol class="arabic simple">
|
|
742
|
+
<li>
|
|
743
|
+
<p>Extract the gem file: <cite>tar -xf
|
|
744
|
+
flnews_post_proc-0.1.gem</cite></p>
|
|
745
|
+
</li>
|
|
743
746
|
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
747
|
+
<li>
|
|
748
|
+
<p>Uncompress the data archive: <cite>gunzip
|
|
749
|
+
data.gz</cite></p>
|
|
750
|
+
</li>
|
|
748
751
|
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
752
|
+
<li>
|
|
753
|
+
<p>Extract the data archive: <cite>tar -xf
|
|
754
|
+
data.tar</cite></p>
|
|
755
|
+
</li>
|
|
756
|
+
</ol>
|
|
754
757
|
|
|
755
|
-
|
|
756
|
-
|
|
758
|
+
<p>This will create the directories <cite>bin</cite>,
|
|
759
|
+
<cite>doc</cite>, and <cite>lib</cite>.</p>
|
|
760
|
+
</blockquote>
|
|
757
761
|
</section>
|
|
758
762
|
|
|
759
763
|
<section id="license-1">
|
|
760
764
|
<span id="license"></span>
|
|
761
765
|
<h3>License</h3>
|
|
762
766
|
|
|
763
|
-
<
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
767
|
+
<blockquote>
|
|
768
|
+
<p>The <strong>flnews_post_proc</strong> is distributed
|
|
769
|
+
under the <a class="reference external" href=
|
|
770
|
+
"https://www.wtfpl.net/about/">WTFPL-2.0</a> or later
|
|
771
|
+
License. For the complete license text, visit <a class=
|
|
772
|
+
"reference external" href=
|
|
773
|
+
"http://www.wtfpl.net/txt/copying/">http://www.wtfpl.net/txt/copying/</a>
|
|
774
|
+
or refer to the license file in the documentation
|
|
775
|
+
directory of the gem.</p>
|
|
776
|
+
</blockquote>
|
|
771
777
|
</section>
|
|
772
778
|
|
|
773
779
|
<section id="author-1">
|
|
774
780
|
<span id="author"></span>
|
|
775
781
|
<h3>Author</h3>
|
|
776
782
|
|
|
777
|
-
<
|
|
778
|
-
|
|
779
|
-
|
|
783
|
+
<blockquote>
|
|
784
|
+
<p><strong>flnews_post_proc</strong> has been developed
|
|
785
|
+
by Michael Uplawski <<a class="reference external"
|
|
786
|
+
href=
|
|
787
|
+
"mailto:michael.uplawski@uplawski.eu">michael.uplawski@uplawski.eu</a>></p>
|
|
788
|
+
</blockquote>
|
|
789
|
+
</section>
|
|
790
|
+
|
|
791
|
+
<section id="this-document">
|
|
792
|
+
<h3>This document</h3>
|
|
793
|
+
|
|
794
|
+
<blockquote>
|
|
795
|
+
<p>©Michael Uplawski <<a class="reference external"
|
|
796
|
+
href=
|
|
797
|
+
"mailto:michael.uplawski@uplawski.eu">michael.uplawski@uplawski.eu</a>></p>
|
|
798
|
+
|
|
799
|
+
<p>License: <a class="reference external" href=
|
|
800
|
+
"https://creativecommons.org/licenses/by-nd/4.0/">CC
|
|
801
|
+
BY-ND 4.0</a></p>
|
|
802
|
+
|
|
803
|
+
<p>Date: 2026-06-19</p>
|
|
804
|
+
</blockquote>
|
|
805
|
+
|
|
806
|
+
<p><strong>Ω</strong>
|
|
807
|
+
</p>
|
|
780
808
|
</section>
|
|
781
809
|
</section>
|
|
782
810
|
</main>
|
|
811
|
+
|
|
812
|
+
<div id='page_dt'>
|
|
813
|
+
2026-06-19
|
|
814
|
+
</div>
|
|
783
815
|
</body>
|
|
784
816
|
</html>
|