- Updated CodeRendererComponent to use Angular's new input() signals instead of @Input decorators - Added fallback content escaping for code that can't be syntax highlighted - Improved code viewer styling with larger fonts, better padding and gradient header background - Enhanced file content fetching with robust cache-busting and fallback mechanisms - Added debug logging to track content loading and syntax highlighting - Fixe
141 lines
2.8 KiB
Markdown
141 lines
2.8 KiB
Markdown
---
|
|
titre: "test-new-file"
|
|
auteur: "Bruno Charest"
|
|
creation_date: "2025-10-19T12:15:21-04:00"
|
|
modification_date: "2025-10-19T12:15:21-04:00"
|
|
aliases: [""]
|
|
status: "en-cours"
|
|
publish: false
|
|
favoris: true
|
|
template: false
|
|
task: false
|
|
archive: false
|
|
draft: false
|
|
private: false
|
|
color: "#22C55E"
|
|
---
|
|
# Page de Test Markdown
|
|
|
|
## Section 1
|
|
|
|
### Sous-section 1.1
|
|
|
|
## Section 2
|
|
|
|
### Sous-section 2.1
|
|
|
|
### Sous-section 2.2
|
|
|
|
### Sous-section 2.3
|
|
|
|
# tableau:
|
|
|
|
| Colonne 1 | Colonne 2 | Colonne 3 |
|
|
|---------|---------|---------|
|
|
| Cellule 1 | Cellule 2 | Cellule 3 |
|
|
| Cellule 4 | Cellule 5 | Cellule 6 |
|
|
|
|
# Liens
|
|
|
|
[lien](https://google.com)
|
|
|
|
# Liste
|
|
|
|
- item 1
|
|
- item 2
|
|
- item 3
|
|
|
|
# Liste à puces
|
|
|
|
- item 1
|
|
- item 2
|
|
- item 3
|
|
|
|
# Liste à numérotation
|
|
|
|
1. item 1
|
|
2. item 2
|
|
3. item 3
|
|
|
|
# Bloc de code
|
|
|
|
```javascript
|
|
console.log('hello world');
|
|
```
|
|
|
|
# Bloc de citation
|
|
|
|
> citation
|
|
|
|
# Bloc de citation avec plusieurs lignes
|
|
|
|
> citation
|
|
> avec plusieurs lignes
|
|
|
|
# Bloc de citation avec plusieurs lignes et bloc de code
|
|
|
|
> citation
|
|
> avec plusieurs lignes
|
|
|
|
```python
|
|
"""Exemple de script Python illustrant l'usage des dataclasses."""
|
|
|
|
from dataclasses import dataclass, field
|
|
from datetime import datetime, timedelta
|
|
from typing import Iterable
|
|
|
|
|
|
@dataclass
|
|
class Task:
|
|
"""Représente une tâche planifiée avec une durée estimée."""
|
|
|
|
name: str
|
|
estimated_minutes: int
|
|
created_at: datetime = field(default_factory=datetime.now)
|
|
completed: bool = False
|
|
|
|
def remaining_minutes(self) -> int:
|
|
"""Calcule le temps restant estimé."""
|
|
return 0 if self.completed else self.estimated_minutes
|
|
|
|
def mark_done(self) -> None:
|
|
"""Marque la tâche comme terminée."""
|
|
self.completed = True
|
|
|
|
|
|
def summarize(tasks: Iterable[Task]) -> str:
|
|
"""Retourne un résumé textuel de la charge de travail."""
|
|
task_list = list(tasks)
|
|
total = sum(task.estimated_minutes for task in task_list)
|
|
remaining = sum(task.remaining_minutes() for task in task_list)
|
|
done = total - remaining
|
|
return (
|
|
f"Tâches: {len(task_list)}\n"
|
|
f"Terminé: {done} min\n"
|
|
f"Restant: {remaining} min\n"
|
|
f"Charge totale: {total} min"
|
|
)
|
|
|
|
|
|
def main() -> None:
|
|
"""Point d'entrée du script avec quelques exemples."""
|
|
tasks = [
|
|
Task("Préparer la réunion", estimated_minutes=45),
|
|
Task("Répondre aux emails", estimated_minutes=20),
|
|
Task("Prototyper l'interface", estimated_minutes=90),
|
|
]
|
|
|
|
# Marquer une tâche comme terminée pour illustrer la logique.
|
|
tasks[1].mark_done()
|
|
|
|
print("Résumé du jour:")
|
|
print(summarize(tasks))
|
|
|
|
# Afficher l'échéance approximative si toutes les tâches sont démarrées maintenant.
|
|
deadline = datetime.now() + timedelta(minutes=sum(task.remaining_minutes() for task in tasks))
|
|
print(f"Heure de fin estimée: {deadline:%H:%M}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
``` |