diff --git a/includes/lib/markdown.php b/includes/lib/markdown.php
index b00e341..c2968d7 100644
--- a/includes/lib/markdown.php
+++ b/includes/lib/markdown.php
@@ -37,8 +37,9 @@ function markdown_to_html($markdown) {
}, $markdown);
// Détection et conversion des URLs brutes en liens cliquables
- $urlPattern = '/(https?:\/\/[^\s<]+[^\s<\.)])/i';
- $markdown = preg_replace_callback($urlPattern, function($matches) use (&$links, &$link_count) {
+ // 1. URLs avec protocole http/https
+ $protocolUrlPattern = '/(https?:\/\/[^\s<]+[^\s<\.)])/i';
+ $markdown = preg_replace_callback($protocolUrlPattern, function($matches) use (&$links, &$link_count) {
$url = $matches[1];
$placeholder = "___LINK_{$link_count}___";
@@ -47,7 +48,25 @@ function markdown_to_html($markdown) {
return $placeholder;
}, $markdown);
-
+
+ // 2. Domaines sans protocole (comme "o-k-i.net", "gong.gp", "NUVEL.NU")
+ // Détecte les domaines avec TLD communs qui ne font pas partie d'autre chose
+ $domainPattern = '/\b([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+([a-zA-Z]{2,63})\b/';
+ $markdown = preg_replace_callback($domainPattern, function($matches) use (&$links, &$link_count) {
+ $domain = $matches[0];
+
+ // Éviter de convertir des éléments qui ressemblent à des versions/numéros ou qui sont déjà dans des liens
+ if (preg_match('/^v?\d+\.\d+/', $domain) || strpos($domain, '___LINK_') !== false) {
+ return $domain;
+ }
+
+ $placeholder = "___LINK_{$link_count}___";
+ $links[$placeholder] = '' . $domain . '';
+ $link_count++;
+
+ return $placeholder;
+ }, $markdown);
+
// Conversion du texte en gras et italique (**texte** et *texte*)
$markdown = preg_replace('/\*\*(.*?)\*\*/s', '$1', $markdown);
$markdown = preg_replace('/\*(.*?)\*/s', '$1', $markdown);
@@ -65,11 +84,11 @@ function markdown_to_html($markdown) {
// Nettoyage des balises br dans les listes
$markdown = preg_replace('/<\/li>
/', '', $markdown);
-
+
// Restaurer les liens
foreach ($links as $placeholder => $link) {
$markdown = str_replace($placeholder, $link, $markdown);
}
-
+
return $markdown;
}
\ No newline at end of file