@@ -12,12 +12,27 @@ document.addEventListener('DOMContentLoaded', () => {
1212 texte = texte . replace ( / ^ # # # # # ( .* $ ) / gim, '<h5>$1</h5>' ) ;
1313 texte = texte . replace ( / ^ # # # # # # ( .* $ ) / gim, '<h6>$1</h6>' ) ;
1414
15+ // Bloc de code
16+ /*
17+ NB : Le code pour le bloc de code est mis ici afin d'éviter d'avoir des problèmes avec les saut de ligne
18+ au sein même du bloc de code, et également afin d'éviter des comportements anormaux en rapport avec le télétype
19+ */
20+ texte = texte . replace ( / ` ` ` ( [ \s \S ] * ?) ` ` ` / g, ( _ , code ) => {
21+ const escaped = code . replace ( / & / g, '&' )
22+ . replace ( / < / g, '<' )
23+ . replace ( / > / g, '>' ) ;
24+ return `<pre><code>${ escaped } </code></pre>` ;
25+ } ) ;
26+
1527 // Saut de ligne
1628 texte = texte . replace ( / \n $ / gim, '<br/>' ) ;
17-
29+
30+ // Télétype
31+ texte = texte . replace ( / ` ( .* ) ` / gim, '<tt>$1</tt>' ) ;
32+
1833 // Souligné
1934 texte = texte . replace ( / \_ \_ ( .* ) \_ \_ / gm, '<span style="text-decoration: underline;">$1</span>' ) ;
20-
35+
2136 // Gras
2237 texte = texte . replace ( / \* \* ( .* ) \* \* / gim, '<b>$1</b>' ) ;
2338 texte = texte . replace ( / _ _ _ ( .* ) _ _ _ / gim, '<b>$1</b>' ) ;
@@ -27,7 +42,6 @@ document.addEventListener('DOMContentLoaded', () => {
2742 texte = texte . replace ( / _ ( .* ) _ / gim, '<i>$1</i>' ) ;
2843
2944 // Bloc de citation
30-
3145 texte = texte . replace ( / ^ \> ( .* $ ) / gim, '<blockquote>$1</blockquote>' ) ;
3246
3347 // Trait horizontal
@@ -40,14 +54,13 @@ document.addEventListener('DOMContentLoaded', () => {
4054 texte = texte . replace ( / ^ \s * [ + ] ( .* $ ) / gim, '<ol><li>$1</li></ol>' ) . replace ( / < \/ o l > \n ? < o l > / g, '' ) ;
4155
4256 // Convertion de liens
57+ // [texte](lien)
4358 texte = texte . replace ( / \[ ( [ ^ \[ \] ] + ) \] \( (? ! .* \. (?: p n g | j p g | g i f | j p e g ) ) ( [ ^ \) ] + ) \) / gim, '<a href="$2">$1</a>' ) ;
4459
4560 // Convertion d'images
61+ // 
4662 texte = texte . replace ( / \! \[ ( [ ^ \[ \] ] + ) \] \( ( .* ?) \) / gim, '<img alt="$1" src="$2"/>' ) ;
47-
48- // Télétype
49- texte = texte . replace ( / ` ( .* ) ` / gim, '<tt>$1</tt>' ) ;
50-
63+
5164 // Liste à coche (non coché)
5265 texte = texte . replace ( / ^ \[ \] ( .* $ ) / gim, '<input type="checkbox"/>$1' ) ; // Sans espace au centre
5366
@@ -57,6 +70,11 @@ document.addEventListener('DOMContentLoaded', () => {
5770 texte = texte . replace ( / ^ \[ \X \] ( .* $ ) / gim, '<input type="checkbox" checked/>$1' ) ;
5871
5972 // Couleur texte
73+ /*
74+ \c[color] texte \c
75+ "color" fait référence à une couleur direct (red, blue, white, green...)
76+ Peut également être remplacer par un hexadécimal ou rgb(X, X, X)
77+ */
6078 texte = texte . replace ( / \\ c \[ ( .* ) \] ( .* ) \\ c / gim, '<span style="color:$1;">$2 </span>' ) ;
6179
6280 return texte . trim ( ) ;
0 commit comments