flnews_post_proc 2.08 → 2.09

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.
@@ -0,0 +1,648 @@
1
+ .\" Man page generated from reStructuredText
2
+ .\" by the Docutils 0.23 manpage writer.
3
+ .
4
+ .
5
+ .nr rst2man-indent-level 0
6
+ .
7
+ .de1 rstReportMargin
8
+ \\$1 \\n[an-margin]
9
+ level \\n[rst2man-indent-level]
10
+ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
11
+ -
12
+ \\n[rst2man-indent0]
13
+ \\n[rst2man-indent1]
14
+ \\n[rst2man-indent2]
15
+ ..
16
+ .de1 INDENT
17
+ .\" .rstReportMargin pre:
18
+ . RS \\$1
19
+ . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
20
+ . nr rst2man-indent-level +1
21
+ .\" .rstReportMargin post:
22
+ ..
23
+ .de UNINDENT
24
+ . RE
25
+ .\" indent \\n[an-margin]
26
+ .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
27
+ .nr rst2man-indent-level -1
28
+ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
29
+ .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
30
+ ..
31
+ .TH flnews_post_proc "1" "Tue 22 Sep 2026" "1" "General Commands"
32
+ .SH Name
33
+ flnews_post_proc \- Post-Processor for the flnews Newsreader
34
+ .INDENT 0.0
35
+ .IP \(bu 2
36
+ SYNOPSIS
37
+ .IP \(bu 2
38
+ DESCRIPTION
39
+ .INDENT 2.0
40
+ .IP \(bu 2
41
+ Limitations of Basic Newsreaders
42
+ .IP \(bu 2
43
+ Dialog for Overriding Settings
44
+ .UNINDENT
45
+ .IP \(bu 2
46
+ CONFIGURATION
47
+ .INDENT 2.0
48
+ .IP \(bu 2
49
+ Configuration Options
50
+ .UNINDENT
51
+ .IP \(bu 2
52
+ Other Information
53
+ .INDENT 2.0
54
+ .IP \(bu 2
55
+ Subject changes:
56
+ .IP \(bu 2
57
+ Editing footnotes
58
+ .IP \(bu 2
59
+ Signatures in Supersedes
60
+ .IP \(bu 2
61
+ Testing
62
+ .IP \(bu 2
63
+ Source Code
64
+ .IP \(bu 2
65
+ License
66
+ .IP \(bu 2
67
+ Author
68
+ .IP \(bu 2
69
+ This document
70
+ .UNINDENT
71
+ .UNINDENT
72
+ .SH SYNOPSIS
73
+ .INDENT 0.0
74
+ .INDENT 3.5
75
+ The post\-processor is invoked by piping an article into it. This typically
76
+ occurs automatically when the \(dqpost_proc\(dq variable is set to \fBflnews_post_proc\fP
77
+ in the flnews configuration file.
78
+ .sp
79
+ For testing purposes, you can also pipe locally stored articles into the
80
+ post\-processor using a command like:
81
+ .INDENT 0.0
82
+ .INDENT 3.5
83
+ \fBflnews_post_proc\fP < article
84
+ .UNINDENT
85
+ .UNINDENT
86
+ .sp
87
+ \&.or:
88
+ .INDENT 0.0
89
+ .INDENT 3.5
90
+ cat article.txt | \fBflnews_post_proc\fP
91
+ .UNINDENT
92
+ .UNINDENT
93
+ .UNINDENT
94
+ .UNINDENT
95
+ .SH DESCRIPTION
96
+ .INDENT 0.0
97
+ .INDENT 3.5
98
+ The flnews newsreader fully supports Usenet access, enabling the reception and
99
+ reading of articles from newsgroups, as well as composing and posting them.
100
+ .sp
101
+ When comparing various news clients, differences will often influence your
102
+ choice of preferred client. Flnews distinguishes itself by not only offering
103
+ control over its internal behavior, but also by allowing you to modify outgoing
104
+ posts just before they are sent to the configured NNTP server.
105
+ .sp
106
+ The \fBflnews_post_proc\fP program can be used to modify and enhance a post in ways
107
+ that flnews alone cannot. It is configurable and may meet the needs of some
108
+ Usenet users, though it is primarily intended as a starting point for creating
109
+ your own custom solutions.
110
+ .UNINDENT
111
+ .UNINDENT
112
+ .SS Limitations of Basic Newsreaders
113
+ .INDENT 0.0
114
+ .INDENT 3.5
115
+ While flnews creates posts that are generally complete and ready for
116
+ submission, there are instances where users might find the output
117
+ unsatisfactory for arbitrary reasons:
118
+ .INDENT 0.0
119
+ .IP \(bu 2
120
+ If you\(aqre posting to different newsgroups in multiple languages, the
121
+ introductory line referencing a prior post can only be set once in the flnews
122
+ configuration file. As a result, posts to a French newsgroup, for example,
123
+ may start with an introduction in English. The post\-processor can address
124
+ this by setting specific introductory lines for each newsgroup.
125
+ .IP \(bu 2
126
+ Similar issues arise when you set a standard signature and want it to vary
127
+ based on the newsgroup. The post\-processor allows different signatures to be
128
+ used for different newsgroups, and you can even randomize the selection from
129
+ a list of signatures stored in a file.
130
+ .IP \(bu 2
131
+ Custom headers, such as GnuPG key IDs or your language proficiency, can also
132
+ be added to posts, though signatures may be a better alternative. Custom
133
+ headers can be defined in the configuration file and will be added to
134
+ outgoing posts.
135
+ .IP \(bu 2
136
+ Headers like \(dqArchive\(dq and \(dqX\-No\-Archive\(dq are sometimes set to prevent an
137
+ article from being indexed by search engines (e.g., Google). For example,
138
+ test posts likely don\(aqt need to be included in search results. The
139
+ post\-processor can apply both headers to all posts sent to certain
140
+ newsgroups.
141
+ .UNINDENT
142
+ .sp
143
+ \fBNOTE\fP: As of 2024, the \(dqX\-No\-Archive\(dq header has limited effectiveness,
144
+ and it is up to server operators whether or not to honor it.
145
+ .INDENT 0.0
146
+ .IP \(bu 2
147
+ Posts that include many references to other posts or URLs can become
148
+ cluttered. The post\-processor can convert marked text into footnotes, similar
149
+ to the <ref/> link format used in Wikipedia, with the delimiter configurable
150
+ in the configuration file.
151
+ Example (using %=): \(dqThis is an object %=and this becomes the footnote,
152
+ describing the object further=%\(dq. See also the hints under
153
+ EDITING FOOTNOTES, below.
154
+ .IP \(bu 2
155
+ When you decide to postpone the publication of an article, flnews does
156
+ currently not offer a way to keep draft messages. The post\-processor lets
157
+ you save preliminary versions of your message in a configured directory
158
+ instead of posting them.
159
+ .UNINDENT
160
+ .UNINDENT
161
+ .UNINDENT
162
+ .SS Dialog for Overriding Settings
163
+ .INDENT 0.0
164
+ .INDENT 3.5
165
+ \fBIMPORTANT\fP: As of version 2.01, only the text interface remains to display the dialog.
166
+ XTerm \%<https://\:xterm\:.dev/> must be installed to use the dialog.
167
+ .sp
168
+ Before the post\-processor runs, a dialog can be displayed to allow users to
169
+ \fBdisable\fP certain CONFIGURATION options and – as of version 2.01 – to
170
+ \fBenable\fP others . If XTerm is available, you can choose to disable the
171
+ following options. You \fBcannot\fP enable options that haven\(aqt already been
172
+ set in the configuration. But you can choose to add an option that is not present
173
+ in the configuration file:
174
+ .INDENT 0.0
175
+ .INDENT 3.5
176
+ .INDENT 0.0
177
+ .IP \(bu 2
178
+ Signatures (if set in the CONFIGURATION) can be \fBignored\fP\&. A default signature will be used, or no signature at all.
179
+ .IP \(bu 2
180
+ Custom headers can be \fBomitted\fP\&.
181
+ .IP \(bu 2
182
+ The \(dqArchive\(dq and \(dqX\-No\-Archive\(dq headers can be \fBignored\fP if set for the current newsgroup.
183
+ .IP \(bu 2
184
+ Logging can be \fBdisabled\fP, if enabled.
185
+ .UNINDENT
186
+ .UNINDENT
187
+ .UNINDENT
188
+ .sp
189
+ There is 1 additional option, which is disabled by default, that you can enable only in the dialog and nowhere else:
190
+ .INDENT 0.0
191
+ .INDENT 3.5
192
+ .INDENT 0.0
193
+ .IP \(bu 2
194
+ The current message can be saved as a draft, \fBinstead\fP of being posted to Usenet.
195
+ .UNINDENT
196
+ .UNINDENT
197
+ .UNINDENT
198
+ .sp
199
+ When your configuration contains the path to a directory for these drafts (option DRAFT_DIR), it will be used to store
200
+ these draft messages, otherwise the temporary directory from the environment variable $TEMP.
201
+ .sp
202
+ Pressing Esc or the Cancel button on the dialog will interrupt the process, and
203
+ flnews will not post the article.
204
+ .sp
205
+ To disable the dialog entirely (and apply all configured options without
206
+ further interaction), set the \fBOVERRIDE_CONFIG\fP option.
207
+ .UNINDENT
208
+ .UNINDENT
209
+ .SH CONFIGURATION
210
+ .INDENT 0.0
211
+ .INDENT 3.5
212
+ Upon first execution of the program, a copy of the original configuration file
213
+ is created in \fI/home/[user]/.flnews_post_proc.conf\fP\&. This file is used
214
+ thereafter. Deleting it will cause the file to be recreated, but any custom
215
+ changes will be lost.
216
+ .sp
217
+ The configuration file uses YAML syntax and includes detailed explanations. The
218
+ variables within it fall into two categories:
219
+ .INDENT 0.0
220
+ .IP 1. 3
221
+ Two variables that represent values originally set by flnews, which can be
222
+ used or replaced. These elements are typically captured using regular
223
+ expressions.
224
+ .IP 2. 3
225
+ Most variables define new or modified content.
226
+ .UNINDENT
227
+ .UNINDENT
228
+ .UNINDENT
229
+ .SS Configuration Options
230
+ .\" empty lines in the following definition list are in reality '\ '
231
+ .
232
+ .sp
233
+ \fBFUP_NAME\fP
234
+ .INDENT 0.0
235
+ .INDENT 3.5
236
+ A regular expression that matches the name of the previous poster in a
237
+ quoted post. This string is recognized in the original article and used
238
+ with the matching element from GROUP_INTROS\&.
239
+ .sp
240
+ Leave this field empty to retain the default value from the FLNews
241
+ configuration.
242
+ .sp
243
+ CONTENT: A string representing a regular expression.
244
+ .sp
245
+ DEFAULT: EMPTY
246
+ .sp
247
+ EXAMPLE1: \(dqOn \e\ed+.\e\ed+.\e\ed{2,4} at \e\ed+:\e\ed+ \fB(.*)\fP wrote:\(dq
248
+ .sp
249
+ EXAMPLE2: \(dq\fB(.*)\fP wrote:\(dq
250
+ .UNINDENT
251
+ .UNINDENT
252
+ .sp
253
+ \fBFUP_GROUP\fP
254
+ .INDENT 0.0
255
+ .INDENT 3.5
256
+ A regular expression that matches the newsgroup where the quoted post was
257
+ published.
258
+ .sp
259
+ Leave this field empty to ignore the exact group.
260
+ .sp
261
+ CONTENT: A string representing a regular expression.
262
+ .sp
263
+ DEFAULT: EMPTY
264
+ .sp
265
+ EXAMPLE: \(dqwrote in \fB(.*)\fP:\(dq
266
+ .UNINDENT
267
+ .UNINDENT
268
+ .sp
269
+ \fBGROUP_INTROS\fP
270
+ .INDENT 0.0
271
+ .INDENT 3.5
272
+ Introductory strings referring to the previous poster in a quoted post.
273
+ When the newsgroup matches FUP_GROUP, these variables are used in the
274
+ resulting introduction.
275
+ .sp
276
+ CONTENT: A newsgroup or regular expression per line, followed by a colon,
277
+ space, and string.
278
+ .sp
279
+ DEFAULT: As configured in FLNews.
280
+ .sp
281
+ EXAMPLE: alt.test: \(dqThus spoke %fup_name% on that baleful %fup_date%:\(dq
282
+ .UNINDENT
283
+ .UNINDENT
284
+ .sp
285
+ \fBGROUP_SIGS\fP
286
+ .INDENT 0.0
287
+ .INDENT 3.5
288
+ Signature lines for each newsgroup or a path to a file containing
289
+ signatures, which should be formatted and separated by one empty line. A
290
+ random signature is picked from the file for each newsgroup. You can also
291
+ source another file within the signature file by starting a line with
292
+ \(dq. /path/to/other/file\(dq.
293
+ .sp
294
+ CONTENT: A newsgroup or regular expression per line, followed by a colon,
295
+ space, and string.
296
+ .sp
297
+ DEFAULT: As configured in flnews.
298
+ .sp
299
+ EXAMPLE:
300
+ .INDENT 0.0
301
+ .INDENT 3.5
302
+ .sp
303
+ .EX
304
+ alt.test: \(dqSignature for alt.test\e\er\e\ensecond line\(dq
305
+ comp.*: /home/[user]/.my_sigs
306
+ .EE
307
+ .UNINDENT
308
+ .UNINDENT
309
+ .UNINDENT
310
+ .UNINDENT
311
+ .sp
312
+ \fBCUSTOM_HEADERS\fP
313
+ .INDENT 0.0
314
+ .INDENT 3.5
315
+ Additional custom headers to be added to outgoing articles.
316
+ .sp
317
+ CONTENT: One line per header, starting with a dash and space, followed by
318
+ the header name and value.
319
+ .sp
320
+ DEFAULT: Undefined
321
+ .sp
322
+ EXAMPLE:
323
+ .INDENT 0.0
324
+ .INDENT 3.5
325
+ .sp
326
+ .EX
327
+ \- \(aqX\-My\-Header: nothing fancy\(aq
328
+ \- \(aqX\-Another\-Header: care not!\(aq
329
+ .EE
330
+ .UNINDENT
331
+ .UNINDENT
332
+ .UNINDENT
333
+ .UNINDENT
334
+ .sp
335
+ \fBNAME_POSTPROCESSOR\fP
336
+ .INDENT 0.0
337
+ .INDENT 3.5
338
+ Can be used to set a custom header \(dqX\-Post\-Processor\(dq with the name of
339
+ the program and its current version. Leave empty or set to no or false
340
+ to avoid the creation of this header.
341
+ This setting is independent of the presence or absence of other custom
342
+ headers and cannot be manipulated in the Override Dialog, only in the
343
+ configuration file.
344
+ .sp
345
+ CONTENT: yes, YES, True, no, NO, empty string, False and variations.
346
+ .sp
347
+ DEFAULT: Empty
348
+ .sp
349
+ EXAMPLE: Yes
350
+ .UNINDENT
351
+ .UNINDENT
352
+ .sp
353
+ \fBNO_ARCHIVE_GROUPS\fP
354
+ .INDENT 0.0
355
+ .INDENT 3.5
356
+ Newsgroups where the \(dqArchive: no\(dq and \(dqX\-No\-Archive: YES\(dq headers should
357
+ be set.
358
+ .sp
359
+ CONTENT: A line with a dash and space, followed by the group name or a
360
+ regular expression.
361
+ .sp
362
+ DEFAULT: Empty
363
+ .sp
364
+ EXAMPLE:
365
+ .INDENT 0.0
366
+ .INDENT 3.5
367
+ .sp
368
+ .EX
369
+ \- \(dqalt.test\(dq
370
+ \- \(dq^news.*\(dq
371
+ .EE
372
+ .UNINDENT
373
+ .UNINDENT
374
+ .UNINDENT
375
+ .UNINDENT
376
+ .sp
377
+ \fBDEBUG_LOG\fP
378
+ .INDENT 0.0
379
+ .INDENT 3.5
380
+ The name of the file where debug messages are logged. If specified, logging
381
+ will be enabled. If empty, logging is disabled.
382
+ .sp
383
+ CONTENT: The name of a writable file, which will be created if it doesn\(aqt
384
+ exist and overwritten if necessary.
385
+ .sp
386
+ DEFAULT: Empty
387
+ .sp
388
+ EXAMPLE: \(dq/tmp/a_log\-file.txt\(dq
389
+ .UNINDENT
390
+ .UNINDENT
391
+ .sp
392
+ \fBLOG LEVEL\fP
393
+ .INDENT 0.0
394
+ .INDENT 3.5
395
+ One of: debug, fatal, error, info, warn.
396
+ .UNINDENT
397
+ .UNINDENT
398
+ .sp
399
+ \fBREFERENCES_SEPARATOR\fP
400
+ .INDENT 0.0
401
+ .INDENT 3.5
402
+ A symbol or sequence marking the end of the message body and the beginning
403
+ of a footnote list. If not defined, footnotes are appended directly after
404
+ the message body.
405
+ .sp
406
+ CONTENT: A quoted symbol or sequence.
407
+ .sp
408
+ DEFAULT: Empty
409
+ .sp
410
+ EXAMPLE: \(dq\-\-\-\-\-\-\-\-\-\(dq
411
+ .UNINDENT
412
+ .UNINDENT
413
+ .sp
414
+ \fBREFERENCES_DELIMITER\fP
415
+ .INDENT 0.0
416
+ .INDENT 3.5
417
+ A sequence marking the beginning and end of text to be used as a footnote
418
+ or reference. The reversed sequence is used to mark the end.
419
+ .sp
420
+ CONTENT: A quoted symbol or sequence.
421
+ .sp
422
+ DEFAULT: None (empty)
423
+ .sp
424
+ EXAMPLE: \(dq%?\(dq
425
+ .UNINDENT
426
+ .UNINDENT
427
+ .sp
428
+ \fBREFERENCE_FORMAT\fP
429
+ .INDENT 0.0
430
+ .INDENT 3.5
431
+ A format string using \fI%s\fP for a number to replace the reference text in
432
+ the body.
433
+ .sp
434
+ DEFAULT: \(dq %s)\(dq → becomes 1) ... 2) ... 3)
435
+ .sp
436
+ EXAMPLE: \(dq(%s)\(dq → becomes (1) ... (2) ... (3)
437
+ .UNINDENT
438
+ .UNINDENT
439
+ .sp
440
+ \fBVFY_URLS\fP
441
+ .INDENT 0.0
442
+ .INDENT 3.5
443
+ A boolean constant determining whether URLs should be verified and
444
+ corrected if necessary. URL manipulations include adding angular brackets
445
+ (\(aq<\(aq, \(aq>\(aq) and slashes after \(dqhttp(s):\(dq.
446
+ .sp
447
+ CONTENT: One of YES, yes, NO, no (case insensitive).
448
+ .sp
449
+ DEFAULT: yes
450
+ .sp
451
+ EXAMPLE: ... I leave this to your discretion.
452
+ .UNINDENT
453
+ .UNINDENT
454
+ .sp
455
+ \fBOVERRIDE_CONFIG\fP
456
+ .INDENT 0.0
457
+ .INDENT 3.5
458
+ A boolean constant that controls whether configuration options can be
459
+ overridden before posting.
460
+ .sp
461
+ Set this to \(dqno\(dq to disable the dialog.
462
+ .sp
463
+ DEFAULT: yes
464
+ .sp
465
+ EXAMPLE: No
466
+ .UNINDENT
467
+ .UNINDENT
468
+ .sp
469
+ \fBUSE_OLD\fP
470
+ .INDENT 0.0
471
+ .INDENT 3.5
472
+ A boolean constant that controls whether \fBflnews_post_proc\fP handles subject changes.
473
+ See Subject changes for the details.
474
+ .sp
475
+ Set to \(dqfalse\(dq or leave empty to ignore subject changes.
476
+ .sp
477
+ DEFAULT: false
478
+ .sp
479
+ EXAMPLE: yes
480
+ .UNINDENT
481
+ .UNINDENT
482
+ .sp
483
+ \fBDRAFT_DIR\fP
484
+ .INDENT 0.0
485
+ .INDENT 3.5
486
+ The path to a directory for draft messages. You can activate an option
487
+ DRAFT_ONLY in the Dialog for Overriding Settings\&. The current message will
488
+ then be saved to this directory, \fBinstead\fP of being posted to Usenet.
489
+ If you leave this option empty, a temporary directory ($TEMP) will be used instead.
490
+ The draft files will be named according to this schema:
491
+ .INDENT 0.0
492
+ .INDENT 3.5
493
+ [n][1st_group][++].draft
494
+ .UNINDENT
495
+ .UNINDENT
496
+ .sp
497
+ where \fIn\fP is the number of files in this directory, \fI1st_group\fP the first
498
+ newsgroup that the message was addressed to and \fI++\fP an optional suffix,
499
+ indicating that there are more newsgroups in the list (cross post). The
500
+ content of a draft file is the current body of the message, preceded by the
501
+ list of newsgroups.
502
+ .sp
503
+ DEFAULT: empty
504
+ .sp
505
+ EXAMPLE: ~/.flnews_drafts
506
+ .UNINDENT
507
+ .UNINDENT
508
+ .SH Other Information
509
+ .SS Subject changes:
510
+ .INDENT 0.0
511
+ .INDENT 3.5
512
+ \fBflnews_post_proc\fP can handle subject changes, provided the configuration option \fBUSE_OLD\fP
513
+ is set to \fBtrue\fP\&. In this case, additional prefixes are recognized (flnews
514
+ handles \(dqWas:\(dq on its own). The additional prefixes are case insensitive
515
+ variations of the German \(dq\fIWar:\fP\(dq and a french \(dq\fIÉtait:\fP\(dq, with or without
516
+ Accent. The french prefix can also contain 1 space before the colon.
517
+ .sp
518
+ When you write a follow\-up to an Article with
519
+ \fISubject: This topic (Was: old topic)\fP
520
+ \fBflnews_post_proc\fP will remove the part in parenthesis, also (War: old topic) and
521
+ (était : old topic).
522
+ .sp
523
+ This necessitates that \fByour own subject changes must not use one of those
524
+ prefixes\fP\&. Instead, use \fI(Old: ...)\fP like in
525
+ \fISubject: new topic (Old: previous topic)\fP
526
+ .sp
527
+ \fBflnews_post_proc\fP will replace Old: by Was: in the posted article.
528
+ .sp
529
+ \fBImportant\fP: When \fIUSE_OLD\fP is true, none of the recognized prefixes will
530
+ survive. If you forget to use \fIOld\fP instead, the subject change will not be
531
+ recognizable as such, your article will only carry the new subject.
532
+ .sp
533
+ Leave the option USE_OLD untouched or set it to \fBfalse\fP to ignore subject
534
+ changes.
535
+ .sp
536
+ \fBNOTE\fP that Flnews may continue to remove the part of the subject line that
537
+ is prefixed with \fI(Was:\fP or \fI(was:\fP\&.
538
+ .UNINDENT
539
+ .UNINDENT
540
+ .SS Editing footnotes
541
+ .INDENT 0.0
542
+ .INDENT 3.5
543
+ Writing footnote text (or URL references) inline while composing an article may
544
+ be tempting, but it will likely break your line formatting. It\(aqs difficult to
545
+ predict line lengths after footnotes are automatically moved to the end.
546
+ Instead, write your complete article first, then add footnotes just before
547
+ posting.
548
+ This lets you anticipate how the final article will look after footnote markers
549
+ replace the inline text (see REFERENCE_FORMAT, above).
550
+ .UNINDENT
551
+ .UNINDENT
552
+ .SS Signatures in Supersedes
553
+ .sp
554
+ Since version 2.0, signatures in supersedes are by default not handled
555
+ differently from other articles, and their signature is assigned in the same
556
+ way as to a new original article.
557
+ However, if you want to maintain the signature from the post that you want to
558
+ replace, you can:
559
+ .INDENT 0.0
560
+ .INDENT 3.5
561
+ .INDENT 0.0
562
+ .IP \(bu 2
563
+ select the complete message body of the original article, including the
564
+ signature
565
+ .IP \(bu 2
566
+ Trigger the supersedes in flnews.
567
+ .IP \(bu 2
568
+ Write your new version of the article while leaving the current signature
569
+ intact.
570
+ .IP \(bu 2
571
+ In the Override Dialog (see Dialog for Overriding Settings), clear the
572
+ signature option.
573
+ .IP \(bu 2
574
+ Hit \(aq0\(aq to confirm your options and to make flnews send the article.
575
+ .UNINDENT
576
+ .UNINDENT
577
+ .UNINDENT
578
+ .SS Testing
579
+ .INDENT 0.0
580
+ .INDENT 3.5
581
+ You can verify the post\-processor’s effect by using one of two methods:
582
+ .INDENT 0.0
583
+ .IP 1. 3
584
+ Pipe a saved post into the program:
585
+ .sp
586
+ \fB:~$ /usr/local/bin/[post\-processor] < [test\-article]\fP
587
+ .INDENT 3.0
588
+ .INDENT 3.5
589
+ This will show the modified article, and you can pipe it into another file
590
+ for further testing.
591
+ .UNINDENT
592
+ .UNINDENT
593
+ .IP 2. 3
594
+ Post directly to a test newsgroup (e.g., alt.test). This is essential before posting to real newsgroups,
595
+ especially when the post\-processor will alter the article.
596
+ .UNINDENT
597
+ .UNINDENT
598
+ .UNINDENT
599
+ .SS Source Code
600
+ .INDENT 0.0
601
+ .INDENT 3.5
602
+ The gem file for the program, available via the gem utility or rubygems.org \%<https://\:rubygems\:.org/\:gems/\:flnews_post_proc>,
603
+ contains all the source code and documentation (this page included). To extract
604
+ it, do the following:
605
+ .INDENT 0.0
606
+ .IP 1. 3
607
+ Extract the gem file: \fItar \-xf flnews_post_proc\-0.1.gem\fP
608
+ .IP 2. 3
609
+ Uncompress the data archive: \fIgunzip data.gz\fP
610
+ .IP 3. 3
611
+ Extract the data archive: \fItar \-xf data.tar\fP
612
+ .UNINDENT
613
+ .sp
614
+ This will create the directories \fIbin\fP, \fIdoc\fP, and \fIlib\fP\&.
615
+ .UNINDENT
616
+ .UNINDENT
617
+ .SS License
618
+ .INDENT 0.0
619
+ .INDENT 3.5
620
+ The \fBflnews_post_proc\fP is distributed under the WTFPL\-2.0 \%<https://\:www\:.wtfpl\:.net/\:about/> or later License. For
621
+ the complete license text, visit \%<http://\:www\:.wtfpl\:.net/\:txt/\:copying/> or refer to
622
+ the license file in the documentation directory of the gem.
623
+ .UNINDENT
624
+ .UNINDENT
625
+ .SS Author
626
+ .INDENT 0.0
627
+ .INDENT 3.5
628
+ \fBflnews_post_proc\fP has been developed by Michael Uplawski <\%<michael\:.uplawski@\:uplawski\:.eu>>
629
+ .UNINDENT
630
+ .UNINDENT
631
+ .SS This document
632
+ .INDENT 0.0
633
+ .INDENT 3.5
634
+ ©Michael Uplawski <\%<michael\:.uplawski@\:uplawski\:.eu>>
635
+ .sp
636
+ License: CC BY\-ND 4.0 \%<https://\:creativecommons\:.org/\:licenses/\:by-nd/\:4\:.0/>
637
+ .sp
638
+ Date: 2026\-09\-22
639
+ .UNINDENT
640
+ .UNINDENT
641
+ .sp
642
+ The man page can be accessed in the ordinary way, by executing \fIman\fP
643
+ \fBflnews_post_proc\fP, \fBif\fP the manpages \%<https://\:rubygems\:.org/\:gems/\:manpages> gem is installed. Initially, executing \fIgem
644
+ manpages \-\-update\-all\fP will ensure that the man pages for all packages which
645
+ provide such documentation are copied to the default locations for man pages.
646
+ .sp
647
+ \fBΩ\fP
648
+ .\" End of generated man page.
Binary file
@@ -11,7 +11,7 @@ flnews_post_proc
11
11
  .. _rubygems.org: https://rubygems.org/gems/flnews_post_proc
12
12
  .. _en Français: https://www.uplawski.eu/div/flnews/gem_doc/fr
13
13
  .. _XTerm: https://xterm.dev/
14
-
14
+ .. _manpages: https://rubygems.org/gems/manpages
15
15
 
16
16
  ------------------------------------------
17
17
  Post-Processor for the flnews_ Newsreader
@@ -504,6 +504,13 @@ This document
504
504
  License: `CC BY-ND 4.0`_
505
505
 
506
506
  Date: |date|
507
+
508
+
509
+ The man page can be accessed in the ordinary way, by executing *man*
510
+ |program|, **if** the `manpages`_ gem is installed. Initially, executing *gem
511
+ manpages --update-all* will ensure that the man pages for all packages which
512
+ provide such documentation are copied to the default locations for man pages.
513
+
507
514
 
508
515
  **Ω**
509
516
 
data/lib/version.rb CHANGED
@@ -14,7 +14,7 @@
14
14
  =end
15
15
 
16
16
  PROGNAME = 'flnews_post_proc'
17
- PROGVERSION = "2.08"
17
+ PROGVERSION = "2.09"
18
18
  AUTHORS = "Michael Uplawski"
19
19
  EMAIL = "michael.uplawski@uplawski.eu"
20
20
  YEARS = "2023 - 2026"