flnews_post_proc 1.94 → 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 +137 -79
- 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 +75 -13
- data/doc/html/flnews_post_proc.html +394 -304
- 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 +289 -237
- 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/configuration.rb +1 -0
- data/lib/flnews_post_proc.conf +15 -1
- data/lib/headers.rb +80 -5
- data/lib/version.rb +2 -2
- metadata +5 -4
|
@@ -1,34 +1,39 @@
|
|
|
1
|
+
|
|
1
2
|
===========================
|
|
2
3
|
flnews_post_proc
|
|
3
4
|
===========================
|
|
4
5
|
|
|
5
6
|
.. |program| replace:: **flnews_post_proc**
|
|
6
7
|
|
|
7
|
-
.. _flnews: https://micha.freeshell.org/flnews
|
|
8
|
+
.. _flnews: https://micha.freeshell.org/flnews
|
|
9
|
+
.. _WTFPL-2.0: https://www.wtfpl.net/about/
|
|
10
|
+
.. _CC By-ND 4.0: https://creativecommons.org/licenses/by-nd/4.0/
|
|
11
|
+
.. _rubygems.org: https://rubygems.org/gems/flnews_post_proc
|
|
12
|
+
.. _en Français: https://www.uplawski.eu/div/flnews/gem_doc/fr
|
|
13
|
+
|
|
8
14
|
|
|
9
15
|
------------------------------------------
|
|
10
16
|
Post-Processor for the flnews_ Newsreader
|
|
11
17
|
------------------------------------------
|
|
12
|
-
|
|
13
18
|
.. contents::
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
:local:
|
|
20
|
+
:backlinks: none
|
|
21
|
+
:depth: 3
|
|
17
22
|
|
|
18
23
|
.. _SYNOPSIS:
|
|
19
24
|
|
|
20
25
|
SYNOPSIS
|
|
21
26
|
===========================
|
|
22
|
-
The post-processor is invoked by piping an article into it. This typically
|
|
23
|
-
occurs automatically when the "post_proc" variable is set to |program|
|
|
24
|
-
in the flnews configuration file.
|
|
27
|
+
The post-processor is invoked by piping an article into it. This typically
|
|
28
|
+
occurs automatically when the "post_proc" variable is set to |program|
|
|
29
|
+
in the flnews configuration file.
|
|
25
30
|
|
|
26
|
-
For testing purposes, you can also pipe locally stored articles into the
|
|
27
|
-
post-processor using a command like:
|
|
31
|
+
For testing purposes, you can also pipe locally stored articles into the
|
|
32
|
+
post-processor using a command like:
|
|
28
33
|
|
|
29
34
|
|program| < article
|
|
30
35
|
|
|
31
|
-
.or:
|
|
36
|
+
.or:
|
|
32
37
|
|
|
33
38
|
cat article.txt | |program|
|
|
34
39
|
|
|
@@ -37,365 +42,412 @@ post-processor using a command like:
|
|
|
37
42
|
DESCRIPTION
|
|
38
43
|
===========================
|
|
39
44
|
|
|
40
|
-
The flnews newsreader fully supports Usenet access, enabling the reception and
|
|
41
|
-
reading of articles from newsgroups, as well as composing and posting them.
|
|
45
|
+
The flnews newsreader fully supports Usenet access, enabling the reception and
|
|
46
|
+
reading of articles from newsgroups, as well as composing and posting them.
|
|
42
47
|
|
|
43
|
-
When comparing various news clients, differences will often influence your
|
|
44
|
-
choice of preferred client. Flnews distinguishes itself by not only offering
|
|
45
|
-
control over its internal behavior, but also by allowing you to modify outgoing
|
|
46
|
-
posts just before they are sent to the configured NNTP server.
|
|
48
|
+
When comparing various news clients, differences will often influence your
|
|
49
|
+
choice of preferred client. Flnews distinguishes itself by not only offering
|
|
50
|
+
control over its internal behavior, but also by allowing you to modify outgoing
|
|
51
|
+
posts just before they are sent to the configured NNTP server.
|
|
47
52
|
|
|
48
|
-
The |program| program can be used to modify and enhance a post in ways
|
|
49
|
-
that flnews alone cannot. It is configurable and may meet the needs of some
|
|
50
|
-
Usenet users, though it is primarily intended as a starting point for creating
|
|
51
|
-
your own custom solutions.
|
|
53
|
+
The |program| program can be used to modify and enhance a post in ways
|
|
54
|
+
that flnews alone cannot. It is configurable and may meet the needs of some
|
|
55
|
+
Usenet users, though it is primarily intended as a starting point for creating
|
|
56
|
+
your own custom solutions.
|
|
52
57
|
|
|
53
58
|
.. _Limitations of Basic Newsreaders:
|
|
54
59
|
|
|
55
60
|
Limitations of Basic Newsreaders
|
|
56
61
|
--------------------------------------------------------
|
|
57
|
-
While flnews creates posts that are generally complete and ready for
|
|
58
|
-
submission, there are instances where users might find the output
|
|
59
|
-
unsatisfactory for arbitrary reasons:
|
|
60
|
-
|
|
61
|
-
* If you're posting to different newsgroups in multiple languages, the
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
* Similar issues arise when you set a standard signature and want it to vary
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
* Custom headers, such as GnuPG key IDs or your language proficiency, can also
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
* Headers like "Archive" and "X-No-Archive" are sometimes set to prevent an
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
While flnews creates posts that are generally complete and ready for
|
|
63
|
+
submission, there are instances where users might find the output
|
|
64
|
+
unsatisfactory for arbitrary reasons:
|
|
65
|
+
|
|
66
|
+
* If you're posting to different newsgroups in multiple languages, the
|
|
67
|
+
introductory line referencing a prior post can only be set once in the flnews
|
|
68
|
+
configuration file. As a result, posts to a French newsgroup, for example,
|
|
69
|
+
may start with an introduction in English. The post-processor can address
|
|
70
|
+
this by setting specific introductory lines for each newsgroup.
|
|
71
|
+
|
|
72
|
+
* Similar issues arise when you set a standard signature and want it to vary
|
|
73
|
+
based on the newsgroup. The post-processor allows different signatures to be
|
|
74
|
+
used for different newsgroups, and you can even randomize the selection from
|
|
75
|
+
a list of signatures stored in a file.
|
|
76
|
+
|
|
77
|
+
* Custom headers, such as GnuPG key IDs or your language proficiency, can also
|
|
78
|
+
be added to posts, though signatures may be a better alternative. Custom
|
|
79
|
+
headers can be defined in the configuration file and will be added to
|
|
80
|
+
outgoing posts.
|
|
81
|
+
|
|
82
|
+
* Headers like "Archive" and "X-No-Archive" are sometimes set to prevent an
|
|
83
|
+
article from being indexed by search engines (e.g., Google). For example,
|
|
84
|
+
test posts likely don't need to be included in search results. The
|
|
85
|
+
post-processor can apply both headers to all posts sent to certain
|
|
86
|
+
newsgroups.
|
|
82
87
|
|
|
83
88
|
**NOTE**: As of 2024, the "X-No-Archive" header has limited effectiveness,
|
|
84
89
|
and it is up to server operators whether or not to honor it.
|
|
85
90
|
|
|
86
|
-
* Posts that include many references to other posts or URLs can become
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
* Posts that include many references to other posts or URLs can become
|
|
92
|
+
cluttered. The post-processor can convert marked text into footnotes, similar
|
|
93
|
+
to the <ref/> link format used in Wikipedia, with the delimiter configurable
|
|
94
|
+
in the configuration file.
|
|
95
|
+
Example (using %=): "This is an object %=and this becomes the footnote,
|
|
96
|
+
describing the object further=%". See also the hints under
|
|
97
|
+
`EDITING FOOTNOTES`_, below.
|
|
93
98
|
|
|
94
99
|
.. _Dialog for Overriding Settings:
|
|
95
100
|
|
|
96
101
|
Dialog for Overriding Settings
|
|
97
102
|
------------------------------
|
|
98
|
-
**IMPORTANT**: As of version 1.72, YAD or Zenity cannot be used for the dialog
|
|
99
|
-
interface.
|
|
103
|
+
**IMPORTANT**: As of version 1.72, YAD or Zenity cannot be used for the dialog
|
|
104
|
+
interface.
|
|
100
105
|
|
|
101
|
-
Before the post-processor runs, a dialog can be displayed to allow users to
|
|
102
|
-
**disable** certain `CONFIGURATION`_ options. If Whiptail or xterm are available,
|
|
103
|
-
you can choose to disable the following options. You **cannot** enable options
|
|
104
|
-
that haven't already been set in the configuration.
|
|
106
|
+
Before the post-processor runs, a dialog can be displayed to allow users to
|
|
107
|
+
**disable** certain `CONFIGURATION`_ options. If Whiptail or xterm are available,
|
|
108
|
+
you can choose to disable the following options. You **cannot** enable options
|
|
109
|
+
that haven't already been set in the configuration.
|
|
105
110
|
|
|
106
|
-
* Signatures (if set in the `CONFIGURATION`_) can be **ignored**. A default
|
|
107
|
-
signature will be used, or no signature at all.
|
|
108
|
-
* Custom headers can be **omitted**.
|
|
109
|
-
* The "Archive" and "X-No-Archive" headers can be **ignored** if set for the
|
|
110
|
-
current newsgroup.
|
|
111
|
-
* Logging can be **disabled**, if enabled.
|
|
111
|
+
* Signatures (if set in the `CONFIGURATION`_) can be **ignored**. A default signature will be used, or no signature at all.
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
flnews will not post the article.
|
|
113
|
+
* Custom headers can be **omitted**.
|
|
115
114
|
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
* The "Archive" and "X-No-Archive" headers can be **ignored** if set for the current newsgroup.
|
|
116
|
+
|
|
117
|
+
* Logging can be **disabled**, if enabled.
|
|
118
|
+
|
|
119
|
+
Pressing Esc or the Cancel button on the dialog will interrupt the process, and
|
|
120
|
+
flnews will not post the article.
|
|
121
|
+
|
|
122
|
+
To disable the dialog entirely (and apply all configured options without
|
|
123
|
+
further interaction), set the **OVERRIDE_CONFIG** option.
|
|
118
124
|
|
|
119
125
|
.. _CONFIGURATION:
|
|
120
126
|
|
|
121
127
|
CONFIGURATION
|
|
122
128
|
===============
|
|
123
|
-
Upon first execution of the program, a copy of the original configuration file
|
|
124
|
-
is created in */home/[user]/.flnews_post_proc.conf*. This file is used
|
|
125
|
-
thereafter. Deleting it will cause the file to be recreated, but any custom
|
|
126
|
-
changes will be lost.
|
|
127
129
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
+
Upon first execution of the program, a copy of the original configuration file
|
|
131
|
+
is created in */home/[user]/.flnews_post_proc.conf*. This file is used
|
|
132
|
+
thereafter. Deleting it will cause the file to be recreated, but any custom
|
|
133
|
+
changes will be lost.
|
|
130
134
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
expressions.
|
|
135
|
+
The configuration file uses YAML syntax and includes detailed explanations. The
|
|
136
|
+
variables within it fall into two categories:
|
|
134
137
|
|
|
135
|
-
|
|
138
|
+
1. Variables that represent values originally set by flnews, which can be used
|
|
139
|
+
or replaced. These elements are typically captured using regular
|
|
140
|
+
expressions.
|
|
141
|
+
|
|
142
|
+
2. Variables that define new or modified content.
|
|
136
143
|
|
|
137
144
|
Configuration Options
|
|
138
145
|
-------------------------------
|
|
139
|
-
|
|
140
146
|
.. empty lines in the following definition list are in reality '\ '
|
|
141
147
|
|
|
142
148
|
**FUP_NAME**
|
|
143
149
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
150
|
+
A regular expression that matches the name of the previous poster in a
|
|
151
|
+
quoted post. This string is recognized in the original article and used
|
|
152
|
+
with the matching element from `GROUP_INTROS`_.
|
|
153
|
+
|
|
154
|
+
Leave this field empty to retain the default value from the FLNews
|
|
155
|
+
configuration.
|
|
156
|
+
|
|
157
|
+
CONTENT: A string representing a regular expression.
|
|
158
|
+
|
|
159
|
+
DEFAULT: EMPTY
|
|
160
|
+
|
|
161
|
+
EXAMPLE1: "On \\\\d+.\\\\d+.\\\\d{2,4} at \\\\d+:\\\\d+ **(.*)** wrote:"
|
|
162
|
+
|
|
163
|
+
EXAMPLE2: "**(.*)** wrote:"
|
|
164
|
+
|
|
165
|
+
.. _FUP_GROUP:
|
|
160
166
|
|
|
161
167
|
**FUP_GROUP**
|
|
162
168
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
EXAMPLE: "wrote in **(.*)**:"
|
|
169
|
+
A regular expression that matches the newsgroup where the quoted post was
|
|
170
|
+
published.
|
|
171
|
+
|
|
172
|
+
Leave this field empty to ignore the exact group.
|
|
173
|
+
|
|
174
|
+
CONTENT: A string representing a regular expression.
|
|
175
|
+
|
|
176
|
+
DEFAULT: EMPTY
|
|
173
177
|
|
|
174
|
-
|
|
178
|
+
EXAMPLE: "wrote in **(.*)**:"
|
|
179
|
+
|
|
180
|
+
.. _GROUP_INTROS:
|
|
175
181
|
|
|
176
182
|
**GROUP_INTROS**
|
|
177
183
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
Introductory strings referring to the previous poster in a quoted post.
|
|
185
|
+
When the newsgroup matches `FUP_GROUP`_, these variables are used in the
|
|
186
|
+
resulting introduction.
|
|
187
|
+
|
|
188
|
+
CONTENT: A newsgroup or regular expression per line, followed by a colon,
|
|
189
|
+
space, and string.
|
|
190
|
+
|
|
191
|
+
DEFAULT: As configured in FLNews.
|
|
192
|
+
|
|
193
|
+
EXAMPLE: alt.test: "Thus spoke %fup_name% on that baleful %fup_date%:"
|
|
188
194
|
|
|
189
195
|
**GROUP_SIGS**
|
|
190
196
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
CONTENT: A newsgroup or regular expression per line, followed by a colon,
|
|
198
|
-
\ \ \ \ space, and string.
|
|
199
|
-
|
|
200
|
-
DEFAULT: As configured in flnews.
|
|
197
|
+
Signature lines for each newsgroup or a path to a file containing
|
|
198
|
+
signatures, which should be formatted and separated by one empty line. A
|
|
199
|
+
random signature is picked from the file for each newsgroup. You can also
|
|
200
|
+
source another file within the signature file by starting a line with
|
|
201
|
+
". /path/to/other/file".
|
|
201
202
|
|
|
202
|
-
|
|
203
|
+
CONTENT: A newsgroup or regular expression per line, followed by a colon,
|
|
204
|
+
\ \ \ \ space, and string.
|
|
203
205
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
+
DEFAULT: As configured in flnews.
|
|
207
|
+
|
|
208
|
+
EXAMPLE::
|
|
209
|
+
|
|
210
|
+
alt.test: "Signature for alt.test\\r\\nsecond line"
|
|
211
|
+
comp.*: /home/[user]/.my_sigs
|
|
206
212
|
|
|
207
213
|
**CUSTOM_HEADERS**
|
|
208
214
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
EXAMPLE::
|
|
215
|
+
Additional custom headers to be added to outgoing articles.
|
|
216
|
+
|
|
217
|
+
CONTENT: One line per header, starting with a dash and space, followed by
|
|
218
|
+
the header name and value.
|
|
219
|
+
|
|
220
|
+
DEFAULT: Undefined
|
|
217
221
|
|
|
218
|
-
|
|
219
|
-
|
|
222
|
+
EXAMPLE::
|
|
223
|
+
|
|
224
|
+
- 'X-My-Header: nothing fancy'
|
|
225
|
+
- 'X-Another-Header: care not!'
|
|
220
226
|
|
|
221
227
|
**NO_ARCHIVE_GROUPS**
|
|
222
228
|
|
|
223
229
|
Newsgroups where the "Archive: no" and "X-No-Archive: YES" headers should
|
|
224
230
|
be set.
|
|
225
|
-
|
|
231
|
+
|
|
226
232
|
CONTENT: A line with a dash and space, followed by the group name or a
|
|
227
233
|
regular expression.
|
|
228
|
-
|
|
234
|
+
|
|
229
235
|
DEFAULT: Empty
|
|
230
|
-
|
|
236
|
+
|
|
231
237
|
EXAMPLE::
|
|
232
238
|
|
|
233
|
-
|
|
234
|
-
|
|
239
|
+
- "alt.test"
|
|
240
|
+
- "^news.*"
|
|
235
241
|
|
|
236
242
|
**DEBUG_LOG**
|
|
237
243
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
244
|
+
The name of the file where debug messages are logged. If specified, logging
|
|
245
|
+
will be enabled. If empty, logging is disabled.
|
|
246
|
+
|
|
247
|
+
CONTENT: The name of a writable file, which will be created if it doesn't
|
|
248
|
+
exist and overwritten if necessary.
|
|
249
|
+
|
|
250
|
+
DEFAULT: Empty
|
|
251
|
+
|
|
252
|
+
EXAMPLE: "/tmp/a_log-file.txt"
|
|
247
253
|
|
|
248
254
|
**LOG LEVEL**
|
|
249
255
|
|
|
250
|
-
|
|
256
|
+
One of: debug, fatal, error, info, warn.
|
|
251
257
|
|
|
252
258
|
**REFERENCES_SEPARATOR**
|
|
253
259
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
260
|
+
A symbol or sequence marking the end of the message body and the beginning
|
|
261
|
+
of a footnote list. If not defined, footnotes are appended directly after
|
|
262
|
+
the message body.
|
|
263
|
+
|
|
264
|
+
CONTENT: A quoted symbol or sequence.
|
|
265
|
+
|
|
266
|
+
DEFAULT: Empty
|
|
267
|
+
|
|
268
|
+
EXAMPLE: "---------"
|
|
263
269
|
|
|
264
270
|
**REFERENCES_DELIMITER**
|
|
265
271
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
272
|
+
A sequence marking the beginning and end of text to be used as a footnote
|
|
273
|
+
or reference. The reversed sequence is used to mark the end.
|
|
274
|
+
|
|
275
|
+
CONTENT: A quoted symbol or sequence.
|
|
276
|
+
|
|
277
|
+
DEFAULT: None (empty)
|
|
278
|
+
|
|
279
|
+
EXAMPLE: "%?"
|
|
274
280
|
|
|
275
281
|
.. _REFERENCE_FORMAT:
|
|
276
282
|
|
|
277
283
|
**REFERENCE_FORMAT**
|
|
278
284
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
+
A format string using `%s` for a number to replace the reference text in
|
|
286
|
+
the body.
|
|
287
|
+
|
|
288
|
+
DEFAULT: " %s)" → becomes 1) ... 2) ... 3)
|
|
289
|
+
|
|
290
|
+
EXAMPLE: "(%s)" → becomes (1) ... (2) ... (3)
|
|
285
291
|
|
|
286
292
|
**VFY_URLS**
|
|
287
293
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
294
|
+
A boolean constant determining whether URLs should be verified and
|
|
295
|
+
corrected if necessary. URL manipulations include adding angular brackets
|
|
296
|
+
('<', '>') and slashes after "http(s):".
|
|
297
|
+
|
|
298
|
+
CONTENT: One of YES, yes, NO, no (case insensitive).
|
|
299
|
+
|
|
300
|
+
DEFAULT: yes
|
|
301
|
+
|
|
302
|
+
EXAMPLE: ... I leave this to your discretion.
|
|
303
|
+
|
|
298
304
|
.. _override dialog:
|
|
299
305
|
|
|
300
306
|
**OVERRIDE_CONFIG**
|
|
301
307
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
308
|
+
A boolean constant that controls whether configuration options can be
|
|
309
|
+
overridden before posting.
|
|
310
|
+
|
|
311
|
+
Set this to "no" to disable the dialog.
|
|
312
|
+
|
|
313
|
+
DEFAULT: yes
|
|
314
|
+
|
|
315
|
+
EXAMPLE: No
|
|
316
|
+
|
|
317
|
+
**USE_OLD**
|
|
318
|
+
|
|
319
|
+
A boolean constant that controls whether |program| handles subject changes.
|
|
320
|
+
See `Subject changes`_ for the details.
|
|
321
|
+
|
|
322
|
+
Set to "false" or leave empty to ignore subject changes.
|
|
323
|
+
|
|
324
|
+
DEFAULT: false
|
|
325
|
+
|
|
326
|
+
EXAMPLE: yes
|
|
310
327
|
|
|
311
328
|
.. _Other Information:
|
|
312
329
|
|
|
313
330
|
Other Information
|
|
314
331
|
========================
|
|
315
332
|
|
|
333
|
+
.. _Subject changes:
|
|
334
|
+
|
|
335
|
+
Subject changes:
|
|
336
|
+
----------------
|
|
337
|
+
|program| can handle subject changes, provided the configuration option **USE_OLD**
|
|
338
|
+
is set to **true**. In this case, additional prefixes are recognized (flnews
|
|
339
|
+
handles "Was:" on its own). The additional prefixes are case insensitive
|
|
340
|
+
variations of the German "*War:*" and a french "*Était:*", with or without
|
|
341
|
+
Accent. The french prefix can also contain 1 space before the colon.
|
|
342
|
+
|
|
343
|
+
When you write a follow-up to an Article with
|
|
344
|
+
*Subject: This topic (Was: old topic)*
|
|
345
|
+
|program| will remove the part in parenthesis, also (War: old topic) and
|
|
346
|
+
(était : old topic).
|
|
347
|
+
|
|
348
|
+
This necessitates that **your own subject changes must not use one of those
|
|
349
|
+
prefixes**. Instead, use *(Old: ...)* like in
|
|
350
|
+
*Subject: new topic (Old: previous topic)*
|
|
351
|
+
|
|
352
|
+
|program| will replace Old: by Was: in the posted article.
|
|
353
|
+
|
|
354
|
+
**Important**: When *USE_OLD* is true, none of the recognized prefixes will
|
|
355
|
+
survive. If you forget to use *Old* instead, the subject change will not be
|
|
356
|
+
recognizable as such, your article will only carry the new subject.
|
|
357
|
+
|
|
358
|
+
Leave the option USE_OLD untouched or set it to **false** to ignore subject
|
|
359
|
+
changes.
|
|
360
|
+
|
|
361
|
+
**NOTE** that Flnews may continue to remove the part of the subject line that
|
|
362
|
+
is prefixed with *(Was:* or *(was:*.
|
|
363
|
+
|
|
316
364
|
.. _EDITING FOOTNOTES:
|
|
317
365
|
|
|
318
366
|
Editing footnotes
|
|
319
367
|
-----------------
|
|
320
|
-
Writing footnote text (or URL references) inline while composing an article may
|
|
321
|
-
be tempting, but it will likely break your line formatting. It's difficult to
|
|
322
|
-
predict line lengths after footnotes are automatically moved to the end.
|
|
323
|
-
Instead, write your complete article first, then add footnotes just before
|
|
324
|
-
posting.
|
|
325
|
-
This lets you anticipate how the final article will look after footnote markers
|
|
326
|
-
replace the inline text (see REFERENCE_FORMAT_, above).
|
|
368
|
+
Writing footnote text (or URL references) inline while composing an article may
|
|
369
|
+
be tempting, but it will likely break your line formatting. It's difficult to
|
|
370
|
+
predict line lengths after footnotes are automatically moved to the end.
|
|
371
|
+
Instead, write your complete article first, then add footnotes just before
|
|
372
|
+
posting.
|
|
373
|
+
This lets you anticipate how the final article will look after footnote markers
|
|
374
|
+
replace the inline text (see REFERENCE_FORMAT_, above).
|
|
327
375
|
|
|
328
376
|
.. _Signatures in Supersedes:
|
|
329
377
|
|
|
330
378
|
Signatures in Supersedes
|
|
331
379
|
------------------------
|
|
332
|
-
When superseding an existing post, the post-processor will NOT automatically add a signature.
|
|
333
|
-
This preserves the original post content as much as possible.
|
|
380
|
+
When superseding an existing post, the post-processor will NOT automatically add a signature.
|
|
381
|
+
This preserves the original post content as much as possible.
|
|
334
382
|
|
|
335
|
-
To retain the signature from the original post:
|
|
383
|
+
To retain the signature from the original post:
|
|
336
384
|
|
|
337
|
-
1. In flnews, select the entire article body with the mouse—from the first line
|
|
338
|
-
(including any introductions) down to the last line of the signature.
|
|
385
|
+
1. In flnews, select the entire article body with the mouse—from the first line (including any introductions) down to the last line of the signature.
|
|
339
386
|
|
|
340
|
-
2. From the Article menu, select **Supersede**.
|
|
387
|
+
2. From the Article menu, select **Supersede**.
|
|
341
388
|
|
|
342
|
-
3. Edit the article text as needed. The signature will be included in the
|
|
343
|
-
editable text (normally, flnews strips signatures before opening the editor).
|
|
389
|
+
3. Edit the article text as needed. The signature will be included in te editable text (normally, flnews strips signatures before opening the editor).
|
|
344
390
|
|
|
345
|
-
4. Send the article.
|
|
391
|
+
4. Send the article.
|
|
346
392
|
|
|
347
|
-
**Note:** The `override dialog`_ (see above) does not affect signatures in superseding posts.
|
|
393
|
+
**Note:** The `override dialog`_ (see above) does not affect signatures in superseding posts.
|
|
348
394
|
|
|
349
395
|
.. _Testing:
|
|
350
396
|
|
|
351
397
|
Testing
|
|
352
398
|
-------
|
|
353
|
-
You can verify the post-processor’s effect by using one of two methods:
|
|
399
|
+
You can verify the post-processor’s effect by using one of two methods:
|
|
354
400
|
|
|
355
|
-
1. Pipe a saved post into the program:
|
|
401
|
+
1. Pipe a saved post into the program:
|
|
356
402
|
|
|
357
|
-
|
|
403
|
+
**:~$ /usr/local/bin/[post-processor] < [test-article]**
|
|
358
404
|
|
|
359
|
-
|
|
360
|
-
|
|
405
|
+
This will show the modified article, and you can pipe it into another file
|
|
406
|
+
for further testing.
|
|
361
407
|
|
|
362
|
-
2. Post directly to a test newsgroup (e.g., alt.test). This is essential before
|
|
363
|
-
|
|
364
|
-
the article.
|
|
408
|
+
2. Post directly to a test newsgroup (e.g., alt.test). This is essential before posting to real newsgroups,
|
|
409
|
+
especially when the post-processor will alter the article.
|
|
365
410
|
|
|
366
411
|
.. _Source Code:
|
|
367
412
|
|
|
413
|
+
|
|
368
414
|
Source Code
|
|
369
415
|
-----------
|
|
416
|
+
The gem file for the program, available via the gem utility or `rubygems.org`_,
|
|
417
|
+
contains all the source code and documentation (this page included). To extract
|
|
418
|
+
it, do the following:
|
|
370
419
|
|
|
371
|
-
|
|
420
|
+
1. Extract the gem file: `tar -xf flnews_post_proc-0.1.gem`
|
|
372
421
|
|
|
373
|
-
|
|
374
|
-
contains all the source code and documentation (this page included). To extract
|
|
375
|
-
it, do the following:
|
|
422
|
+
2. Uncompress the data archive: `gunzip data.gz`
|
|
376
423
|
|
|
377
|
-
|
|
378
|
-
2. Uncompress the data archive: `gunzip data.gz`
|
|
379
|
-
3. Extract the data archive: `tar -xf data.tar`
|
|
424
|
+
3. Extract the data archive: `tar -xf data.tar`
|
|
380
425
|
|
|
381
|
-
This will create the directories `bin`, `doc`, and `lib`.
|
|
426
|
+
This will create the directories `bin`, `doc`, and `lib`.
|
|
382
427
|
|
|
383
428
|
.. _License:
|
|
384
429
|
|
|
385
430
|
License
|
|
386
431
|
-------
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
The |program| is distributed under the `WTFPL-2.0`_ or later License. For
|
|
391
|
-
the complete license text, visit http://www.wtfpl.net/txt/copying/ or refer to
|
|
392
|
-
the license file in the documentation directory of the gem.
|
|
432
|
+
The |program| is distributed under the `WTFPL-2.0`_ or later License. For
|
|
433
|
+
the complete license text, visit http://www.wtfpl.net/txt/copying/ or refer to
|
|
434
|
+
the license file in the documentation directory of the gem.
|
|
393
435
|
|
|
394
436
|
.. _Author:
|
|
395
437
|
|
|
396
438
|
Author
|
|
397
439
|
------
|
|
398
|
-
|program| has been developed by
|
|
399
|
-
|
|
440
|
+
|program| has been developed by Michael Uplawski <michael.uplawski@uplawski.eu>
|
|
441
|
+
|
|
442
|
+
.. |date| date::
|
|
443
|
+
|
|
444
|
+
This document
|
|
445
|
+
-------------
|
|
446
|
+
©Michael Uplawski <michael.uplawski@uplawski.eu>
|
|
447
|
+
|
|
448
|
+
License: `CC BY-ND 4.0`_
|
|
449
|
+
|
|
450
|
+
Date: |date|
|
|
400
451
|
|
|
452
|
+
**Ω**
|
|
401
453
|
|