PageSourceSearch

https://rfpp.net/local/cache-js/jsdyn-javascript_porte_plume_start_js-d09290c1.js?1788454182

js rfpp.net collected 2026-10-02 07:42:32 UTC 22,637 bytes, 704 lines download raw bytes

1/* #PRODUIRE{fond=javascript/porte_plume_start.js,hash=1b9954afab03c617c877e8791a90a634,inserer_auto_name_texte=1,lang=fr}
2   md5:386eb506988465423b278d519586b732 */
3
4
5barre_outils_edition = {
6    "nameSpace": "edition",
7    "previewAutoRefresh": false,
8    "onEnter": {
9        "keepDefault": false,
10        "selectionType": "return",
11        "replaceWith": "\n"
12    },
13    "onShiftEnter": {
14        "keepDefault": false,
15        "replaceWith": "\n_ "
16    },
17    "onCtrlEnter": {
18        "keepDefault": false,
19        "replaceWith": "\n\n"
20    },
21    "markupSet": [
22        {
23            "name": "Transformer en {{{intertitre}}}",
24            "key": "H",
25            "className": "outil_header1",
26            "openWith": "\n{{{",
27            "closeWith": "}}}\n",
28            "selectionType": "line"
29        },
30        {
31            "name": "Mettre en {{gras}}",
32            "key": "B",
33            "className": "outil_bold",
34            "replaceWith": function(h){ return espace_si_accolade(h, '{{', '}}');},
35            "selectionType": "word"
36        },
37        {
38            "name": "Mettre en {italique}",
39            "key": "I",
40            "className": "outil_italic",
41            "replaceWith": function(h){ return espace_si_accolade(h, '{', '}');},
42            "selectionType": "word"
43        },
44        {
45            "name": "Mettre en liste",
46            "className": "outil_liste_ul separateur_avant",
47            "replaceWith": function(h){ return outil_liste(h, '*');},
48            "selectionType": "line",
49            "forceMultiline": true,
50            "dropMenu": [
51                {
52                    "id": "liste_ol",
53                    "name": "Mettre en liste num\u00e9rot\u00e9e",
54                    "className": "outil_liste_ol",
55                    "replaceWith": function(h){ return outil_liste(h, '#');},
56                    "display": true,
57                    "selectionType": "line",
58                    "forceMultiline": true
59                },
60                {
61                    "id": "desindenter",
62                    "name": "D\u00e9sindenter une liste",
63                    "className": "outil_desindenter",
64                    "replaceWith": function(h){return outil_desindenter(h);},
65                    "display": true,
66                    "selectionType": "line",
67                    "forceMultiline": true
68                },
69                {
70                    "id": "indenter",
71                    "name": "Indenter une liste",
72                    "className": "outil_indenter",
73                    "replaceWith": function(h){return outil_indenter(h);},
74                    "display": true,
75                    "selectionType": "line",
76                    "forceMultiline": true
77                }
78            ]
79        },
80        {
81            "name": "Transformer en [lien hypertexte->http:\/\/...]",
82            "key": "L",
83            "className": "outil_link separateur separateur_apres sepLink",
84            "openWith": "[",
85            "closeWith": "->[![Veuillez indiquer l\u2019adresse de votre lien (vous pouvez indiquer une adresse Internet sous la forme http:\/\/www.monsite.com, une adresse courriel, ou simplement indiquer le num\u00e9ro d\u2019un article de ce site.]!]]"
86        },
87        {
88            "name": "Transformer en [[Note de bas de page]]",
89            "className": "outil_notes separateur_avant",
90            "openWith": "[[",
91            "closeWith": "]]",
92            "selectionType": "word"
93        },
94        {
95            "name": "<quote>Citer un message<\/quote>",
96            "key": "Q",
97            "className": "outil_quote separateur separateur_apres sepGuillemets",
98            "openWith": "\n<quote>",
99            "closeWith": "<\/quote>\n",
100            "selectionType": "word",
101            "dropMenu": [
102                {
103                    "id": "barre_poesie",
104                    "name": "Mettre en forme comme une <poesie>po\u00e9sie<\/poesie>",
105                    "className": "outil_poesie",
106                    "openWith": "\n<poesie>",
107                    "closeWith": "<\/poesie>\n",
108                    "display": true,
109                    "selectionType": "line"
110                }
111            ]
112        },
113        {
114            "name": "Entourer de \u00ab\u00a0guillemets\u00a0\u00bb",
115            "className": "outil_guillemets",
116            "openWith": "«",
117            "closeWith": "»",
118            "lang": [
119                "fr",
120                "eo",
121                "cpf",
122                "ar",
123                "es"
124            ],
125            "selectionType": "word",
126            "dropMenu": [
127                {
128                    "id": "guillemets_simples",
129                    "name": "Entourer de \u201cguillemets de second niveau\u201d",
130                    "className": "outil_guillemets_simples",
131                    "openWith": "“",
132                    "closeWith": "”",
133                    "display": true,
134                    "lang": [
135                        "fr",
136                        "eo",
137                        "cpf",
138                        "ar",
139                        "es"
140                    ],
141                    "selectionType": "word"
142                }
143            ]
144        },
145        {
146            "name": "Entourer de \u00ab\u00a0guillemets\u00a0\u00bb",
147            "className": "outil_guillemets_de",
148            "openWith": "„",
149            "closeWith": "“",
150            "lang": [
151                "bg",
152                "de",
153                "pl",
154                "hr",
155                "src"
156            ],
157            "selectionType": "word",
158            "dropMenu": [
159                {
160                    "id": "guillemets_de_simples",
161                    "name": "Entourer de \u201cguillemets de second niveau\u201d",
162                    "className": "outil_guillemets_de_simples",
163                    "openWith": "&sbquo;",
164                    "closeWith": "‘",
165                    "display": true,
166                    "lang": [
167                        "bg",
168                        "de",
169                        "pl",
170                        "hr",
171                        "src"
172                    ],
173                    "selectionType": "word"
174                }
175            ]
176        },
177        {
178            "name": "Entourer de \u00ab\u00a0guillemets\u00a0\u00bb",
179            "className": "outil_guillemets_simples separateur_avant",
180            "openWith": "“",
181            "closeWith": "”",
182            "lang_not": [
183                "fr",
184                "eo",
185                "cpf",
186                "ar",
187                "es",
188                "bg",
189                "de",
190                "pl",
191                "hr",
192                "src"
193            ],
194            "selectionType": "word",
195            "dropMenu": [
196                {
197                    "id": "guillemets_autres_simples",
198                    "name": "Entourer de \u201cguillemets de second niveau\u201d",
199                    "className": "outil_guillemets_uniques",
200                    "openWith": "‘",
201                    "closeWith": "’",
202                    "display": true,
203                    "lang_not": [
204                        "fr",
205                        "eo",
206                        "cpf",
207                        "ar",
208                        "es",
209                        "bg",
210                        "de",
211                        "pl",
212                        "hr",
213                        "src"
214                    ],
215                    "selectionType": "word"
216                }
217            ]
218        },
219        {
220            "name": "Ins\u00e9rer des caract\u00e8res sp\u00e9cifiques",
221            "className": "outil_caracteres separateur separateur_apres sepCaracteres separateur_avant",
222            "dropMenu": [
223                {
224                    "id": "A_grave",
225                    "name": "Ins\u00e9rer un \u00c0",
226                    "className": "outil_a_maj_grave",
227                    "replaceWith": "À",
228                    "display": true,
229                    "lang": [
230                        "fr",
231                        "eo",
232                        "cpf"
233                    ]
234                },
235                {
236                    "id": "E_aigu",
237                    "name": "Ins\u00e9rer un \u00c9",
238                    "className": "outil_e_maj_aigu",
239                    "replaceWith": "É",
240                    "display": true,
241                    "lang": [
242                        "fr",
243                        "eo",
244                        "cpf"
245                    ]
246                },
247                {
248                    "id": "E_grave",
249                    "name": "Ins\u00e9rer un \u00c8",
250                    "className": "outil_e_maj_grave",
251                    "replaceWith": "È",
252                    "display": true,
253                    "lang": [
254                        "fr",
255                        "eo",
256                        "cpf"
257                    ]
258                },
259                {
260                    "id": "aelig",
261                    "name": "Ins\u00e9rer un \u00e6",
262                    "className": "outil_aelig",
263                    "replaceWith": "æ",
264                    "display": true,
265                    "lang": [
266                        "fr",
267                        "eo",
268                        "cpf"
269                    ]
270                },
271                {
272                    "id": "AElig",
273                    "name": "Ins\u00e9rer un \u00c6",
274                    "className": "outil_aelig_maj",
275                    "replaceWith": "Æ",
276                    "display": true,
277                    "lang": [
278                        "fr",
279                        "eo",
280                        "cpf"
281                    ]
282                },
283                {
284                    "id": "oe",
285                    "name": "Ins\u00e9rer un \u0153",
286                    "className": "outil_oe",
287                    "replaceWith": "œ",
288                    "display": true,
289                    "lang": [
290                        "fr"
291                    ]
292                },
293                {
294                    "id": "OE",
295                    "name": "Ins\u00e9rer un \u0152",
296                    "className": "outil_oe_maj",
297                    "replaceWith": "Œ",
298                    "display": true,
299                    "lang": [
300                        "fr"
301                    ]
302                },
303                {
304                    "id": "Ccedil",
305                    "name": "Ins\u00e9rer un \u00c7",
306                    "className": "outil_ccedil_maj",
307                    "replaceWith": "Ç",
308                    "display": true,
309                    "lang": [
310                        "fr",
311                        "eo",
312                        "cpf"
313                    ]
314                },
315                {
316                    "id": "uppercase",
317                    "name": "Passer en majuscules",
318                    "className": "outil_uppercase",
319                    "replaceWith": function(markitup) { return markitup.selection.toUpperCase() },
320                    "display": true,
321                    "lang": [
322                        "fr",
323                        "en"
324                    ]
325                },
326                {
327                    "id": "lowercase",
328                    "name": "Passer en minuscules",
329                    "className": "outil_lowercase",
330                    "replaceWith": function(markitup) { return markitup.selection.toLowerCase() },
331                    "display": true,
332                    "lang": [
333                        "fr",
334                        "en"
335                    ]
336                }
337            ]
338        },
339        {
340            "name": "Ins\u00e9rer un code informatique (`)",
341            "className": "outil_code separateur separateur_apres sepCode",
342            "openWith": "`",
343            "closeWith": "`",
344            "dropMenu": [
345                {
346                    "id": "cadre",
347                    "name": "Ins\u00e9rer un code pr\u00e9format\u00e9 (```)",
348                    "className": "outil_cadre",
349                    "openWith": "```\n",
350                    "closeWith": "\n```",
351                    "display": true
352                }
353            ]
354        }
355    ]
356}
357
358 
359				// remplace ou cree -* ou -** ou -# ou -##
360				function outil_liste(h, c) {
361					if ((s = h.selection) && (r = s.match(/^-([*#]+) (.*)$/)))	 {
362						r[1] = r[1].replace(/[#*]/g, c);
363						s = '-'+r[1]+' '+r[2];
364					} else {
365						s = '-' + c + ' '+s;
366					}
367					return s;
368				}
369
370				// indente des -* ou -#
371				function outil_indenter(h) {
372					if (s = h.selection) {
373						if (s.substr(0,2)=='-*') {
374							s = '-**' + s.substr(2);
375						} else if (s.substr(0,2)=='-#') {
376							s = '-##' + s.substr(2);
377						} else {
378							s = '-* ' + s;
379						}
380					}
381					return s;
382				}
383
384				// desindente des -* ou -** ou -# ou -##
385				function outil_desindenter(h){
386					if (s = h.selection) {
387						if (s.substr(0,3)=='-**') {
388							s = '-*' + s.substr(3);
389						} else if (s.substr(0,3)=='-* ') {
390							s = s.substr(3);
391						} else if (s.substr(0,3)=='-##') {
392							s = '-#' + s.substr(3);
393						} else if (s.substr(0,3)=='-# ') {
394							s = s.substr(3);
395						}
396					}
397					return s;
398				}
399
400				// ajouter un espace avant, apres un {qqc} pour ne pas que
401				// gras {{}} suivi de italique {} donnent {{{}}}, mais { {{}} }
402				function espace_si_accolade(h, openWith, closeWith){
403					if (s = h.selection) {
404						// accolade dans la selection
405						if (s.charAt(0)=='{') {
406							return openWith + ' ' + s + ' ' + closeWith;
407						}
408						// accolade avant la selection
409						else if (c = h.textarea.selectionStart) {
410							if (h.textarea.value.charAt(c-1) == '{') {
411								return ' ' + openWith + s + closeWith + ' ';
412							}
413						}
414					}
415					return openWith + s + closeWith;
416				}
417				
418
419barre_outils_forum = {
420    "nameSpace": "forum",
421    "previewAutoRefresh": false,
422    "onEnter": {
423        "keepDefault": false,
424        "selectionType": "return",
425        "replaceWith": "\n"
426    },
427    "onShiftEnter": {
428        "keepDefault": false,
429        "replaceWith": "\n_ "
430    },
431    "onCtrlEnter": {
432        "keepDefault": false,
433        "replaceWith": "\n\n"
434    },
435    "markupSet": [
436        {
437            "name": "Mettre en {{gras}}",
438            "key": "B",
439            "className": "outil_bold",
440            "replaceWith": function(h){ return espace_si_accolade(h, '{{', '}}');},
441            "selectionType": "word"
442        },
443        {
444            "name": "Mettre en {italique}",
445            "key": "I",
446            "className": "outil_italic separateur_avant",
447            "replaceWith": function(h){ return espace_si_accolade(h, '{', '}');},
448            "selectionType": "word"
449        },
450        {
451            "name": "Transformer en [lien hypertexte->http:\/\/...]",
452            "key": "L",
453            "className": "outil_link separateur separateur_apres sepLink separateur_avant",
454            "openWith": "[",
455            "closeWith": "->[![Veuillez indiquer l\u2019adresse de votre lien (vous pouvez indiquer une adresse Internet sous la forme http:\/\/www.monsite.com, une adresse courriel, ou simplement indiquer le num\u00e9ro d\u2019un article de ce site.]!]]"
456        },
457        {
458            "name": "<quote>Citer un message<\/quote>",
459            "key": "Q",
460            "className": "outil_quote separateur separateur_apres sepGuillemets",
461            "openWith": "\n<quote>",
462            "closeWith": "<\/quote>\n",
463            "selectionType": "word"
464        },
465        {
466            "name": "Entourer de \u00ab\u00a0guillemets\u00a0\u00bb",
467            "className": "outil_guillemets",
468            "openWith": "«",
469            "closeWith": "»",
470            "lang": [
471                "fr",
472                "eo",
473                "cpf",
474                "ar",
475                "es"
476            ],
477            "selectionType": "word",
478            "dropMenu": [
479                {
480                    "id": "guillemets_simples",
481                    "name": "Entourer de \u201cguillemets de second niveau\u201d",
482                    "className": "outil_guillemets_simples",
483                    "openWith": "“",
484                    "closeWith": "”",
485                    "display": true,
486                    "lang": [
487                        "fr",
488                        "eo",
489                        "cpf",
490                        "ar",
491                        "es"
492                    ],
493                    "selectionType": "word"
494                }
495            ]
496        },
497        {
498            "name": "Entourer de \u00ab\u00a0guillemets\u00a0\u00bb",
499            "className": "outil_guillemets_de",
500            "openWith": "„",
501            "closeWith": "“",
502            "lang": [
503                "bg",
504                "de",
505                "pl",
506                "hr",
507                "src"
508            ],
509            "selectionType": "word",
510            "dropMenu": [
511                {
512                    "id": "guillemets_de_simples",
513                    "name": "Entourer de \u201cguillemets de second niveau\u201d",
514                    "className": "outil_guillemets_de_simples",
515                    "openWith": "&sbquo;",
516                    "closeWith": "‘",
517                    "display": true,
518                    "lang": [
519                        "bg",
520                        "de",
521                        "pl",
522                        "hr",
523                        "src"
524                    ],
525                    "selectionType": "word"
526                }
527            ]
528        },
529        {
530            "name": "Entourer de \u00ab\u00a0guillemets\u00a0\u00bb",
531            "className": "outil_guillemets_simples separateur_avant",
532            "openWith": "“",
533            "closeWith": "”",
534            "lang_not": [
535                "fr",
536                "eo",
537                "cpf",
538                "ar",
539                "es",
540                "bg",
541                "de",
542                "pl",
543                "hr",
544                "src"
545            ],
546            "selectionType": "word",
547            "dropMenu": [
548                {
549                    "id": "guillemets_autres_simples",
550                    "name": "Entourer de \u201cguillemets de second niveau\u201d",
551                    "className": "outil_guillemets_uniques",
552                    "openWith": "‘",
553                    "closeWith": "’",
554                    "display": true,
555                    "lang_not": [
556                        "fr",
557                        "eo",
558                        "cpf",
559                        "ar",
560                        "es",
561                        "bg",
562                        "de",
563                        "pl",
564                        "hr",
565                        "src"
566                    ],
567                    "selectionType": "word"
568                }
569            ]
570        }
571    ]
572}
573
574 
575				// remplace ou cree -* ou -** ou -# ou -##
576				function outil_liste(h, c) {
577					if ((s = h.selection) && (r = s.match(/^-([*#]+) (.*)$/)))	 {
578						r[1] = r[1].replace(/[#*]/g, c);
579						s = '-'+r[1]+' '+r[2];
580					} else {
581						s = '-' + c + ' '+s;
582					}
583					return s;
584				}
585
586				// indente des -* ou -#
587				function outil_indenter(h) {
588					if (s = h.selection) {
589						if (s.substr(0,2)=='-*') {
590							s = '-**' + s.substr(2);
591						} else if (s.substr(0,2)=='-#') {
592							s = '-##' + s.substr(2);
593						} else {
594							s = '-* ' + s;
595						}
596					}
597					return s;
598				}
599
600				// desindente des -* ou -** ou -# ou -##
601				function outil_desindenter(h){
602					if (s = h.selection) {
603						if (s.substr(0,3)=='-**') {
604							s = '-*' + s.substr(3);
605						} else if (s.substr(0,3)=='-* ') {
606							s = s.substr(3);
607						} else if (s.substr(0,3)=='-##') {
608							s = '-#' + s.substr(3);
609						} else if (s.substr(0,3)=='-# ') {
610							s = s.substr(3);
611						}
612					}
613					return s;
614				}
615
616				// ajouter un espace avant, apres un {qqc} pour ne pas que
617				// gras {{}} suivi de italique {} donnent {{{}}}, mais { {{}} }
618				function espace_si_accolade(h, openWith, closeWith){
619					if (s = h.selection) {
620						// accolade dans la selection
621						if (s.charAt(0)=='{') {
622							return openWith + ' ' + s + ' ' + closeWith;
623						}
624						// accolade avant la selection
625						else if (c = h.textarea.selectionStart) {
626							if (h.textarea.value.charAt(c-1) == '{') {
627								return ' ' + openWith + s + closeWith + ' ';
628							}
629						}
630					}
631					return openWith + s + closeWith;
632				}
633				
634
635barre_outils_vide = {
636    "nameSpace": "vide",
637    "previewAutoRefresh": false,
638    "markupSet": []
639}
640
641 
642
643
644;(function($){
645
646// 2 fonctions pour appeler le porte plume reutilisables pour d'autres plugins
647// on envoie dedans la selection jquery qui doit etre effectuee
648// ce qui evite des appels direct a markitup, aucazou on change de lib un j
648our
649$.fn.barre_outils = function(nom, settings) {
650	options = {
651		lang:'fr'
652	};
653	$.extend(options, settings);
654
655	return $(this)
656		.not('.markItUpEditor, .no_barre')
657		.markItUp(eval('barre_outils_' + nom), {lang:options.lang})
658		.trigger('markItUpEditor.loaded')
659		.parent().find('.markItUpButton a').attr('tabindex', -1) // ne pas tabuler les boutons
660		.end(); 
661};
662
663$.fn.barre_previsualisation = function(settings) {
664	options = {
665		previewParserPath:"index.php?action=porte_plume_previsu", // ici une url relative pour prive/public
666		textEditer:"Modifier",
667		textVoir:"Voir"
668	};
669	$.extend(options, settings);
670
671	return $(this)
672		.not('.pp_previsualisation, .no_previsualisation')
673		.previsu_spip(options)
674		.trigger('markItUpPreview.loaded')
675		.parent().find('.markItUpTabs a').attr('tabindex', -1) // ne pas tabuler les onglets
676		.end();
677};
678
679$(window).on('load', function(){
680	// ajoute les barres d'outils markitup
681	function barrebouilles(){
682		// fonction generique appliquee aux classes CSS :
683		// inserer_barre_forum, inserer_barre_edition, inserer_previsualisation
684		$('.formulaire_spip textarea.inserer_barre_forum').barre_outils('forum');
685		$('.formulaire_spip textarea.inserer_barre_edition').barre_outils('edition');
686		$('.formulaire_spip textarea.inserer_previsualisation').barre_previsualisation();
687
688		 
689		// fonction specifique aux formulaires de SPIP :
690		// barre de forum
691		$('textarea.textarea_forum').barre_outils('forum');
692		 
693		$('.formulaire_forum textarea[name=texte]').barre_outils('forum');
694		// barre d'edition et onglets de previsualisation
695		$('.formulaire_spip textarea[name=texte]')
696			.barre_outils('edition').end()
697			.barre_previsualisation();
698		
699	}
700	barrebouilles();
701	onAjaxLoad(barrebouilles);
702
703});
704})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.