flnews_post_proc 1.7

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,704 @@
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">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
7
+ <title>Flnews_post_proc</title>
8
+ <style type="text/css">
9
+
10
+ /*
11
+ :Author: David Goodger (goodger@python.org)
12
+ :Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
13
+ :Copyright: This stylesheet has been placed in the public domain.
14
+
15
+ Default cascading style sheet for the HTML output of Docutils.
16
+
17
+ See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
18
+ customize this style sheet.
19
+ */
20
+
21
+ /* used to remove borders from tables and images */
22
+ .borderless, table.borderless td, table.borderless th {
23
+ border: 0 }
24
+
25
+ table.borderless td, table.borderless th {
26
+ /* Override padding for "table.docutils td" with "! important".
27
+ The right padding separates the table cells. */
28
+ padding: 0 0.5em 0 0 ! important }
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>
361
+ </head>
362
+ <body>
363
+ <div class="document" id="flnews-post-proc">
364
+ <h1 class="title">flnews_post_proc</h1>
365
+ <h2 class="subtitle" id="post-traitement-pour-flnews">Post-Traitement pour flnews</h2>
366
+
367
+ <div class="section" id="synopsis">
368
+ <h1>SYNOPSIS</h1>
369
+ <p>Un article est envoyé au logiciel de post-traitement via STDIN. Ceci se passe
370
+ automatiquement, quand la variable « post_proc » dans le fichier de
371
+ configuration de flnews a la valeur <em>flnews_post_proc</em>.</p>
372
+ <p>Si un article a été sauvegardé dans un fichier, il peut servir pour tester le
373
+ fonctionnement de flnews_post_proc, en lançant une commande comme :</p>
374
+ <blockquote>
375
+ <strong>flnews_post_proc &lt; article.txt</strong></blockquote>
376
+ <p>ou si vous préférez l'équivalent :</p>
377
+ <blockquote>
378
+ <strong>cat article.txt | flnews_post_proc</strong></blockquote>
379
+ </div>
380
+ <div class="section" id="description">
381
+ <h1>DESCRIPTION</h1>
382
+ <p>Le lecteur de news <strong>flnews</strong> est suffisant pour l'accès au Usenet, c'est à
383
+ dire pour lire les articles et pour les rédiger et les envoyer aux newsgroups
384
+ de votre choix.</p>
385
+ <p>Quand vous comparez les clients pour les news, vous allez toujours identifier
386
+ le logiciel qui correspond à vos attentes et vos habitudes. Flnews, comme un
387
+ logiciel basique, vous offre la possibilité d'influencer comment il fonctionne
388
+ et aussi de manipuler directement les articles qu'il produit, juste avant qu'ils
389
+ soient envoyés au serveur nntp.</p>
390
+ <p>Ce post-traitement peut servir à ajouter et à modifier des détails du message
391
+ d'une manière qui n'est actuellement pas possible avec seulement flnews. Comme
392
+ le logiciel est configurable, il peut probablement répondre aux besoins de
393
+ quelques utilisateurs du Usenet. Quand même, vous devez le comprendre comme un
394
+ exemple pour ce qui est possible et pour inspiration, afin de créer vos propres
395
+ solutions.</p>
396
+ <div class="section" id="les-limites-d-un-lecteur-basique-de-news-ce-qui-peut-faire-flnews-post-proc">
397
+ <h2>Les limites d'un lecteur basique de news – ce qui peut faire flnews_post_proc</h2>
398
+ <p>Bien que les articles qui sont créés avec flnews sont complets et prêt pour
399
+ l'envoi, certains utilisateurs ne seront pas toujours d'accord avec le résultat
400
+ et ce pour des raisons arbitraires :</p>
401
+ <ul>
402
+ <li><p class="first">Il peut y avoir des inconvénients quand vous communiquez dans de groupes
403
+ diverses en plusieurs langues. La ligne d'introduction qui fait référence à
404
+ un article précédent, ne peut être configurée qu'une seule fois pour flnews.
405
+ La conséquence peut être une introduction en Anglais quand vous postez dans
406
+ un groupe français.</p>
407
+ <p>Avec mon logiciel de post-traitement vous pouvez imposer des introductions
408
+ spécifiques, à chaque fois pour une ou plusieurs newsgroups.</p>
409
+ </li>
410
+ <li><p class="first">Le même conflit se produit quand vous avez défini une signature mais voudriez
411
+ la remplacer contre une autre, selon le groupe dans lequel vous êtes en train
412
+ de poster.</p>
413
+ <p>flnews_post_proc peut faire exactement ça, quand vous avez configuré quel
414
+ signature doit apparaître dans quel newsgroup ou liste de newsgroups.</p>
415
+ </li>
416
+ <li><p class="first">Quelques entêtes supplémentaires peuvent servir à transmettre des informations
417
+ aux lecteurs intéressés, comme l'ID de votre clé GnuPG, vos connaissances en
418
+ langues ou pareil. Il se trouve que la signature est mieux pour ça, mais vous
419
+ êtes libres. Je veux mentionner « face » et « x-face » mais préfère que vous
420
+ ne vous en souvenez pas.</p>
421
+ <p>Ces entêtes, – Custom-Headers – peuvent être définis dans la configuration
422
+ du logiciel et vont être utilisées dans chaque article sortant.</p>
423
+ </li>
424
+ <li><p class="first">Les entêtes « Archive » et « X-No-Archive » sont parfois utilisés afin
425
+ d'éviter l'archivage d'un article. Il ne devrait par conséquence pas être
426
+ trouvé par les moteurs de recherche ( Google notamment ). Les articles dans
427
+ les groupes de test, par exemple, ne valent probablement pas qu'on les trouve
428
+ parmi les résultats des recherches.</p>
429
+ <p>Avec flnews_post_proc vous pouvez décider et imposer que vos articles dans
430
+ certains newsgroups contiendront d'office les deux entêtes <strong>Archive: no</strong> et
431
+ <strong>X-No-Archive: Yes</strong>.</p>
432
+ <p><strong>ATTENTION</strong>: Dès 2024, l'entête « X-No-Archive » a perdu beaucoup de son
433
+ utilité. Les opérateurs des serveurs peuvent décider s'ils veulent le prendre
434
+ en considération ou non.</p>
435
+ </li>
436
+ <li><p class="first">Certains messages mentionnent d'autres articles ou des URLs de pages Web.
437
+ S'ils sont nombreux, ces références peuvent déranger la lecture à cause de
438
+ leur syntaxe spécifique.</p>
439
+ <p>Mon logiciel est capable d'identifier des fragments de text marqué – pas
440
+ seulement des références – et les transformer en notes en bas de page. Vous
441
+ pouvez imaginer ça comme le fonctionnement de la balise &lt;ref/&gt; de Wikipedia,
442
+ mais vous pouvez définir votre propre séparateur pour marquer les fragments
443
+ de text dans le fichier de configuration.</p>
444
+ <p>Exemple ( avec séparateur <strong>%=</strong> ) :
445
+ « Ceci est un objet %=et ceci devient la note en bas de page, qui décrit
446
+ l'objet plus précisement=% »</p>
447
+ </li>
448
+ </ul>
449
+ </div>
450
+ <div class="section" id="dialogue-pour-desactiver-des-options">
451
+ <h2>Dialogue pour désactiver des options</h2>
452
+ <p>Juste avant d'entrer en action, flnews_post_proc peut afficher un dialogue, qui
453
+ vous laisse <strong>désactiver</strong> des options fixées dans la configuration. Sous
454
+ condition qu'un des outils YAD, Zenity, Whiptail ou seulement xterm est
455
+ disponible, vous pouvez choisir dans les options suivantes, ceux que vous
456
+ voulez ignorer pour l'article en préparation. Vous <strong>ne pouvez pas</strong> activer
457
+ des options, qui ne l'ont pas été auparavant :</p>
458
+ <ul class="simple">
459
+ <li>Signatures, comme définis dans la configuration <strong>peuvent être ignorées</strong>.
460
+ Soit une signature par défaut sera appliquée, si prévue, ou aucune.</li>
461
+ <li>Entêtes supplémentaires, si définis, peuvent rester absentes de l'article.</li>
462
+ <li>Les entêtes Archive et X-No-Archive, si prévus pour le newsgroup choisi,
463
+ peuvent être ignorés.</li>
464
+ <li>L'auto correction de URLs et références à d'autres articles peut être
465
+ désactivé.</li>
466
+ <li>L'écriture d'un protocole peut être arrêtée.</li>
467
+ </ul>
468
+ <p>En tapant Esc ou en poussant le bouton « Annuler » du dialogue, vous pouvez
469
+ interrompre le processus, flnews ne vas pas envoyer l'article.</p>
470
+ <p>Vous pouvez même désactiver le dialogue, ce qui assure que toutes les options
471
+ configurées seront appliquées sans plus d'interaction ( à voir dessous : optoin
472
+ OVERRIDE_CONFIG ).</p>
473
+ </div>
474
+ </div>
475
+ <div class="section" id="configuration">
476
+ <h1>CONFIGURATION</h1>
477
+ <p>La première fois que vous exécutez le logiciel, une copie de la configuration
478
+ par défaut sera écrit dans <em>/home/[utilisateur]/.flnews_post_proc.conf</em> C'est
479
+ ce fichier qui sera désormais utilisé. Si vous l'effacez, il sera recréé à la
480
+ prochaine occasion, mais vos modifications seront perdues.</p>
481
+ <p>Le fichier de configuration est en format YAML et plein d'explications. Les
482
+ variables définis dans ce fichier peuvent être classées en deux catégories :</p>
483
+ <ul class="simple">
484
+ <li>Variables qui décrivent des valeurs déterminées par flnews. Ils peuvent être
485
+ utiilisées ou remplacées. Les composants importants sont normalement
486
+ spécifiés dans une « capture group ».</li>
487
+ <li>Variables qui définissent du nouveau contenu ou des changements dans le
488
+ contenu.</li>
489
+ </ul>
490
+ <dl class="docutils">
491
+ <dt><strong>FUP_NAME</strong></dt>
492
+ <dd><p class="first">Une « expression régulière » ( “regular expression” ) décrivant la chaîne de
493
+ caractères qui contient le nom de l'auteur d'un article précédent, qu'on veut
494
+ citer en partie. Cet élément est reconnu dans l'article d'origine et peut
495
+ être utilisé à la place de l'élément correspondant dans <em>GROUP_INTRO</em> ( à voir
496
+ plus bas ). Le format de l'expression est celui de la classe Regexp dans Ruby.
497
+ Veillez de masquer le backslash '\' avec un autre, comme dans l'exemple. Un
498
+ « capture group » '()' sert à extraire le nom du résultat de la comparaison.</p>
499
+ <p>Laissez ce champs vide afin de maintenir le comportement configuré pour flnews.</p>
500
+ <p>CONTENU : L'équivalent d'une regular expression en chaîne de caractères.</p>
501
+ <p>PAR DÉFAUT : Vide</p>
502
+ <p>EXEMPLE 1 : &quot;On \\d+.\\d+.\\d{2,4} at \\d+:\\d+ <strong>(.*)</strong> wrote:&quot;</p>
503
+ <p class="last">EXEMPLE 2 : &quot;<strong>(.*)</strong> wrote:&quot;</p>
504
+ </dd>
505
+ <dt><strong>FUP_GROUP</strong></dt>
506
+ <dd><p class="first">Une « expression régulière » ( “regular expression” ) décrivant la chaîne de
507
+ caractères qui contient le newsgroup où a été publié l'article précédent à qui nous
508
+ faisons référence dans un « followup ».</p>
509
+ <p>Laissez ce champs vide afin d'ignorer le groupe précis.</p>
510
+ <p>CONTENU : l'équivalent d'une regular expression en chaîne de caractères.</p>
511
+ <p>PAR DÉFAUT : Vide</p>
512
+ <p class="last">EXEMPLE : &quot;wrote in <strong>(.*)</strong>:&quot;</p>
513
+ </dd>
514
+ <dt><strong>GROUP_INTROS</strong></dt>
515
+ <dd><p class="first">Des introductions qui font référence à l'auteur de l'article précédent que
516
+ nous souhaitons citer. Si vous avez trouvé le newsgroup où l'article a été
517
+ publié ( à voir : FUP_GROUP, ci-dessus ), et le nom de son auteur
518
+ ( FUP_NAME ), vous pouvez utiliser ces valeurs ici.</p>
519
+ <p>Jusqu'à prochaine ordre, seulement %fup_name% est %fup_group% sont reproduit
520
+ dans l'introduction resultant.</p>
521
+ <div class="line-block">
522
+ <div class="line">CONTENU : Un newsgroup ou regexp par ligne, suivi de deux points, un espace et</div>
523
+ <div class="line-block">
524
+ <div class="line">une chaîne de caractères.</div>
525
+ </div>
526
+ </div>
527
+ <p>PAR DÉFAUT : Comme configuré dans flnews.</p>
528
+ <div class="last line-block">
529
+ <div class="line">EXEMPLE ( un groupe et une hiérarchie ) :</div>
530
+ <div class="line-block">
531
+ <div class="line">alt.test: &quot;Thus spoke %fup_name% in %fup_group%&quot;</div>
532
+ <div class="line">fr\.*: &quot;C'était dans %fup_group%, que %fup_name% c'est exprimé ainsi&quot;</div>
533
+ </div>
534
+ </div>
535
+ </dd>
536
+ <dt><strong>GROUP_SIGS</strong></dt>
537
+ <dd><p class="first">Une signature par newsgroup ou expression.
538
+ ATTN! Vous devez noter \r\n pour les sautes de lignes, si une signature
539
+ s'étend sur plusieurs lignes.</p>
540
+ <p>CONTENU : un newsgroup ou expression par ligne, suivi de deux poins, un espace
541
+ et une chaîne de caractères.</p>
542
+ <p>PAR DÉFAUT : Comme configuré dans flnews.</p>
543
+ <p class="last">EXEMPLE : fr.test: &quot;Signature pour alt.test\r\nseconde ligne&quot;</p>
544
+ </dd>
545
+ <dt><strong>CUSTOM_HEADERS</strong></dt>
546
+ <dd><p class="first">Entêtes supplémentaires pour l'article sortant.</p>
547
+ <p>CONTENU : 1 ligne par entête : un trait d'union, un espace, puis une chaîne de
548
+ caractères comprenant le nom de l'entête, puis deux points et la valeur de
549
+ l'entête.</p>
550
+ <p>PAR DÉFAUT : Vide ( pas défini )</p>
551
+ <div class="last line-block">
552
+ <div class="line">EXEMPLE ( 2 entêtes ) :</div>
553
+ <div class="line">- 'X-My-Header: nothing fancy'</div>
554
+ <div class="line">- 'X-Another-Header: care not!'</div>
555
+ </div>
556
+ </dd>
557
+ <dt><strong>NO_ARCHIVE_GROUPS</strong></dt>
558
+ <dd><p class="first">Les newsgroups, où les entêtes « Archive: no » et « X-No-Archive: yes »
559
+ doivent être présents.</p>
560
+ <p>CONTENU : Un trait d'union et un espace, puis une chaîne de caractères,
561
+ contenant le nom du groupe ou une expression.</p>
562
+ <p>PAR DÉFAUT : Vide</p>
563
+ <div class="last line-block">
564
+ <div class="line">EXEMPLE ( 1 groupe, 1 hiérarchie ) :</div>
565
+ <div class="line">- &quot;alt.test&quot;</div>
566
+ <div class="line">- &quot;^news.*&quot;</div>
567
+ </div>
568
+ </dd>
569
+ <dt><strong>DEBUG_LOG</strong></dt>
570
+ <dd><p class="first">Le nom d'un fichier, qui va servir comme protocol. Si le nom d'un fichier
571
+ valide est donné, le protocol est activé. Laissez vide pour désactiver le
572
+ protocol.</p>
573
+ <div class="line-block">
574
+ <div class="line">CONTENU : Le nom d'un fichier dont les droits permettent l'écriture.</div>
575
+ <div class="line-block">
576
+ <div class="line">Il sera créé s'il n'existe pas encore et remplacé à chaque exécution</div>
577
+ <div class="line">du logiciel.</div>
578
+ </div>
579
+ </div>
580
+ <p>PAR DÉFAUT : Vide</p>
581
+ <p class="last">EXEMPLE : '/tmp/a_log-file.txt'</p>
582
+ </dd>
583
+ <dt><strong>LOG LEVEL</strong></dt>
584
+ <dd><p class="first">Un de debug, fatal, error, info, warn</p>
585
+ <div class="last line-block">
586
+ <div class="line">EXEMPLE :</div>
587
+ <div class="line-block">
588
+ <div class="line">LOG_LEVEL: 'debug'</div>
589
+ </div>
590
+ </div>
591
+ </dd>
592
+ <dt><strong>REFERENCES_SEPARATOR</strong></dt>
593
+ <dd><p class="first">Un symbole ou une séquence de symboles qui marquent la fin du corps du message
594
+ et le début d'une liste de « références » ou « notes de pied de page ». Il
595
+ apparaîtra seulement, si le message contient du text marqué pour servir comme
596
+ note de pied de page. À voir <em>REFERENCES_DELIMITER</em> ci-dessous.</p>
597
+ <p>Si l'option n'est pas défini ou vide, la liste suit à la dernière ligne du
598
+ corps du message, sans séparation supplémentaire.</p>
599
+ <p>CONTENU : Un symbol ou séquence de symboles entre guillemets &quot; &quot; ou ' '.</p>
600
+ <p>PAR DÉFAUT : Vide</p>
601
+ <p class="last">EXEMPLE : '---------'</p>
602
+ </dd>
603
+ <dt><strong>REFERENCES_DELIMITER</strong></dt>
604
+ <dd><p class="first">Une séquence d'au moins deux symboles qui marque le début d'un text qui sera
605
+ transformé en note de pied de page ( ou référence ). La <strong>séquence inversée</strong>
606
+ doit marquer la fin du même fragment de text. La présence de cette séquence
607
+ dans le message d'origine, a comme conséquence que le text marqué sera déplacé
608
+ vers la fin, au-dessous du corps du message.
609
+ Si <em>REFERENCES_SEPARATOR</em> ( option ci-dessus ) est défini, il va séparer le message
610
+ de la liste des notes du pied de page.</p>
611
+ <p>Laissez ce champs vide pour éviter la création des noted du pied de page.</p>
612
+ <p>CONTENU : Une séquence de symboles entre guillemets ( '' )</p>
613
+ <p>PAR DÉFAUT : Vide</p>
614
+ <p class="last">EXEMPLE: '%?'</p>
615
+ </dd>
616
+ <dt><strong>REFERENCE_FORMAT</strong></dt>
617
+ <dd><p class="first">Une chaîne de formatage, contenant %s pour représenter une nombre, qui
618
+ remplace le texte d'une future note du pied de page dans le corps du message.</p>
619
+ <p>PAR DÉFAUT : &quot; %s)&quot; -&gt; devient 1) ... 2) ... 3)</p>
620
+ <p class="last">EXEMPLE : &quot;(%s)&quot; -&gt; devient (1) ... (2) ... (3)</p>
621
+ </dd>
622
+ <dt><strong>VFY_URLS</strong></dt>
623
+ <dd><p class="first">Une constante booléen. Elle détermine si le programme doit essayer de corriger
624
+ des URLs. Même si les URLs sont identifiables, seulement quelques manipulations
625
+ sont temptées :</p>
626
+ <ul class="simple">
627
+ <li>'&lt;' et '&gt;' sont ajoutés, si manquants</li>
628
+ <li>Des slashes sont insérés, s'ils manquent après &quot;http(s):&quot;</li>
629
+ </ul>
630
+ <p>ATTN! Le programme ne peut pas différencier entre &quot;mailto:&quot; et &quot;news:&quot;. Si ni l'un
631
+ ni l'autre est donné, mais '&#64;' est présent, &quot;news:&quot; est ajouté automatiquement.</p>
632
+ <p>Si la variable n'est pas défini, la valeur 'yes' est présumée.</p>
633
+ <p>CONTENU: Un de YES, yes, NO, no, et autres tels variations</p>
634
+ <p>PAR DÉFAUT: yes</p>
635
+ <p class="last">EXEMPLE: No</p>
636
+ </dd>
637
+ <dt><strong>OVERRIDE_CONFIG</strong></dt>
638
+ <dd><p class="first">Une constante booléenne. Vous pouvez décider d'ignorer les options suivantes
639
+ avant qu'un article est posté : GROUP_SIGS, XNAY_GROUPS, CUSTOM_HEADERS,
640
+ VFY_URLS et DEBUG_LOG. Un dialogue peut être affiché, qui permet la
641
+ désactivation de chacune de ces options. Les valeurs par défaut, définis pour
642
+ flnews, vont donc prévaloir.</p>
643
+ <p>ATTN ! En poussant Esc ou le bouton « Annuler » du dialogue, vous interrompez
644
+ le programme et flnews ne va rien envoyer.</p>
645
+ <p>Notez la valeur 'no', 'NO' ou pareil pour désactiver le dialogue.</p>
646
+ <p>PAR DÉFAUT : yes</p>
647
+ <p class="last">EXEMPLE: No</p>
648
+ </dd>
649
+ </dl>
650
+ </div>
651
+ <div class="section" id="autres-informations">
652
+ <h1>Autres Informations</h1>
653
+ <div class="section" id="tester">
654
+ <h2>Tester</h2>
655
+ <p>L'effet qu'aura l'exécution du programme peut être vérifié de deux manières :</p>
656
+ <ol class="arabic">
657
+ <li><p class="first">En fournissant un article, sauvegardé auparavant dans un fichier :</p>
658
+ <p><strong>:~$ /usr/local/bin/[post-processor] &lt; [test-article]</strong></p>
659
+ <p>Ceci va vous présenter la nouvelle version de l'article sur l'écran, mais
660
+ vous pouvez aussi diriger le résultat dans un autre fichier. C'est une
661
+ excellente technique pour tester un logiciel pendant le développement ou
662
+ votre configuration avant que vous vous en servez.</p>
663
+ </li>
664
+ <li><p class="first">En envoyant un message directement dans un groupe de test ( comme alt.test,
665
+ fr.test ou similaires ).
666
+ Ceci est obligatoire avant que vous postez dans des groupes thématiques et
667
+ si les réglages du post-traitement vont modifier l'article.</p>
668
+ </li>
669
+ </ol>
670
+ </div>
671
+ <div class="section" id="code-source">
672
+ <h2>Code source</h2>
673
+ <p>Le fichier flnews_post_proc.gem, que vous recevez à l'aide de l'outil <em>gem</em> ou
674
+ directement du site <em>rubygems.org</em>, contient tout le code source du logiciel et
675
+ de la documentation ( cette page notamment ). Pour lire le code du logiciel,
676
+ vous devez</p>
677
+ <ol class="arabic simple">
678
+ <li>utiliser <em>tar -xf flnews_post_proc-[version].gem</em></li>
679
+ <li>décomprimer l'archive data.gz : <em>gunzip data.gz</em></li>
680
+ <li>Extraire le contenu du fichier résultant « data.tar » :
681
+ <em>tar -xf data.tar</em></li>
682
+ </ol>
683
+ <p>À la fin les répertoires bin, doc et lib seront créés.</p>
684
+ </div>
685
+ <div class="section" id="license">
686
+ <h2>License</h2>
687
+ <p>flnews_post_proc est distribué sous les conditions de la WTFPL-2.0 ou plus
688
+ récent ( À voir <a class="reference external" href="http://www.wtfpl.net/txt/copying/">http://www.wtfpl.net/txt/copying/</a> ou license-text dans le
689
+ répertoire « doc » de la gem ).</p>
690
+ </div>
691
+ <div class="section" id="auteur">
692
+ <h2>Auteur</h2>
693
+ <div class="line-block">
694
+ <div class="line">flnews_post_proc a été développé par</div>
695
+ <div class="line">Michael Uplawski &lt;<a class="reference external" href="mailto:michael.uplawski&#64;uplawski.eu">michael.uplawski&#64;uplawski.eu</a>&gt;</div>
696
+ </div>
697
+ </div>
698
+ </div>
699
+ <div class="section" id="section-1">
700
+ <h1>Ω</h1>
701
+ </div>
702
+ </div>
703
+ </body>
704
+ </html>