Skip to main content
Back to Blog

Test Markdown Rendering

Test du rendu Markdown

Cet article teste toutes les fonctionnalités Markdown avec la nouvelle coloration syntaxique.

Code HTML

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test HTML</title>
</head>
<body>
    <div class="container">
        <h1>Hello World!</h1>
        <p>Ceci est un paragraphe avec du <strong>texte en gras</strong>.</p>
    </div>
</body>
</html>

Code CSS

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.container h1 {
  color: #ffffff;
  font-size: 2.5rem;
  text-align: center;
  margin-bottom: 1rem;
}

@media (max-width: 768px) {
  .container {
    padding: 10px;
  }
}

Code JavaScript

// Fonction moderne avec async/await
async function fetchUserData(userId) {
  try {
    const response = await fetch(`/api/users/${userId}`);
    
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    
    const userData = await response.json();
    return userData;
  } catch (error) {
    console.error('Erreur lors de la récupération des données:', error);
    return null;
  }
}

// Utilisation avec destructuring
const { name, email, avatar } = await fetchUserData(123);
console.log(`Utilisateur: ${name} (${email})`);

Code C#

using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace BlogApi.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class ArticlesController : ControllerBase
    {
        private readonly IArticleService _articleService;
        
        public ArticlesController(IArticleService articleService)
        {
            _articleService = articleService ?? throw new ArgumentNullException(nameof(articleService));
        }
        
        [HttpGet("{id}")]
        public async Task<ActionResult<Article>> GetArticle(int id)
        {
            var article = await _articleService.GetByIdAsync(id);
            
            if (article == null)
            {
                return NotFound($"Article with ID {id} not found");
            }
            
            return Ok(article);
        }
    }
}

Code Python

import asyncio
import aiohttp
from typing import List, Optional

class ArticleManager:
    def __init__(self, base_url: str):
        self.base_url = base_url
        self.session: Optional[aiohttp.ClientSession] = None
    
    async def __aenter__(self):
        self.session = aiohttp.ClientSession()
        return self
    
    async def __aexit__(self, exc_type, exc_val, exc_tb):
        if self.session:
            await self.session.close()
    
    async def fetch_articles(self, category: str = None) -> List[dict]:
        """Récupère les articles depuis l'API"""
        url = f"{self.base_url}/articles"
        params = {"category": category} if category else {}
        
        async with self.session.get(url, params=params) as response:
            response.raise_for_status()
            return await response.json()

# Utilisation
async def main():
    async with ArticleManager("https://api.example.com") as manager:
        articles = await manager.fetch_articles("tech")
        print(f"Trouvé {len(articles)} articles")

if __name__ == "__main__":
    asyncio.run(main())

Configuration YAML

# Configuration Docker Compose
version: '3.8'

services:
  web:
    build: 
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATABASE_URL=postgresql://user:pass@db:5432/myapp
    depends_on:
      - database
      - redis
    volumes:
      - ./uploads:/app/uploads
    restart: unless-stopped

  database:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: user
      POSTGRES_PASSWORD: secretpassword
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

  redis:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:

Commandes Bash

#!/bin/bash

# Script de déploiement automatisé
set -e

echo "🚀 Début du déploiement..."

# Variables
APP_NAME="mon-blog"
DOCKER_IMAGE="$APP_NAME:latest"
CONTAINER_NAME="$APP_NAME-container"

# Arrêter le conteneur existant
if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then
    echo "📦 Arrêt du conteneur existant..."
    docker stop $CONTAINER_NAME
    docker rm $CONTAINER_NAME
fi

# Construire la nouvelle image
echo "🔨 Construction de l'image Docker..."
docker build -t $DOCKER_IMAGE .

# Lancer le nouveau conteneur
echo "🎯 Lancement du nouveau conteneur..."
docker run -d \
    --name $CONTAINER_NAME \
    -p 3000:3000 \
    --restart unless-stopped \
    $DOCKER_IMAGE

echo "✅ Déploiement terminé avec succès!"
echo "🌐 Application disponible sur http://localhost:3000"

Autres fonctionnalités

Listes

Liste numérotée

  1. Premier élément
  2. Deuxième élément
  3. Troisième élément avec code inline

Citation

“La simplicité est la sophistication suprême.” — Leonardo da Vinci

Tableau

LangageTypePerformancePopularité
JavaScriptInterprétéMoyenne⭐⭐⭐⭐⭐
PythonInterprétéMoyenne⭐⭐⭐⭐⭐
C#CompiléÉlevée⭐⭐⭐⭐
RustCompiléTrès élevée⭐⭐⭐

Voilà ! Le rendu Markdown devrait maintenant être parfait avec une belle coloration syntaxique ! 🎨