feat: add URL state synchronization for navigation

- Added UrlStateService to sync app state with URL parameters for note selection, tags, folders, and search
- Implemented URL state effects in AppComponent to handle navigation from URL parameters
- Updated sidebar and layout components to reflect URL state changes in UI
- Added URL state updates when navigating via note selection, tag clicks, and search
- Modified note sharing to use URL parameters instead of route paths
- Added auto-opening of relevant
This commit is contained in:
2025-10-24 23:23:30 -04:00
parent 0f7cc552ca
commit 96745e9997
28 changed files with 5991 additions and 360 deletions
+8 -13
View File
@@ -1,22 +1,17 @@
---
titre: Nouveau-markdown
auteur: Bruno Charest
creation_date: 2025-10-19T21:42:53-04:00
modification_date: 2025-10-19T21:43:06-04:00
catégorie: markdown
tags:
- allo
aliases:
- nouveau
status: en-cours
publish: false
favoris: true
titre: "Nouveau-markdown"
auteur: "Bruno Charest"
creation_date: "2025-10-19T21:42:53-04:00"
modification_date: "2025-10-19T21:43:06-04:00"
status: "en-cours"
publish: true
favoris: false
template: true
task: true
archive: true
draft: true
private: true
toto: tata
toto: "tata"
---
Allo ceci est un tests
toto
@@ -17,6 +17,7 @@ archive: true
draft: true
private: true
toto: tata
readOnly: false
---
Allo ceci est un tests
toto
@@ -53,7 +54,4 @@ test
## sous-titre 7
test
## sous-titre 8
## sous-titre 8
@@ -0,0 +1,17 @@
---
titre: Nouvelle note 4
auteur: Bruno Charest
creation_date: 2025-10-25T02:07:16.534Z
modification_date: 2025-10-24T22:07:16-04:00
catégorie: ""
tags: []
aliases: []
status: en-cours
publish: false
favoris: false
template: false
task: false
archive: false
draft: false
private: false
---
@@ -0,0 +1,15 @@
---
titre: "Nouvelle note 4"
auteur: "Bruno Charest"
creation_date: "2025-10-25T02:07:16.534Z"
modification_date: "2025-10-25T02:07:16.534Z"
status: "en-cours"
publish: false
favoris: false
template: false
task: false
archive: false
draft: false
private: false
---
+13 -20
View File
@@ -1,31 +1,24 @@
---
titre: test
auteur: Bruno Charest
creation_date: 2025-09-25T07:45:20-04:00
modification_date: 2025-10-19T12:09:47-04:00
catégorie: ""
tags:
- tag1
- tag2
- test
- test2
- home
aliases: []
status: en-cours
titre: "test"
auteur: "Bruno Charest"
creation_date: "2025-09-25T07:45:20-04:00"
modification_date: "2025-10-19T12:09:47-04:00"
aliases: [""]
status: "en-cours"
publish: true
favoris: true
favoris: false
template: true
task: true
archive: true
draft: true
private: true
first_name: Bruno
birth_date: 2025-06-18
email: [email protected]
number: 12345
first_name: "Bruno"
birth_date: "2025-06-18"
email: "[email protected]"
number: "12345"
todo: false
url: https://google.com
image: https://images.unsplash.com/photo-1675789652575-0a5d2425b6c2?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80
url: "https://google.com"
image: "https://images.unsplash.com/photo-1675789652575-0a5d2425b6c2?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80"
---
# Test 1 Markdown
-260
View File
@@ -1,260 +0,0 @@
---
titre: test
auteur: Bruno Charest
creation_date: 2025-09-25T07:45:20-04:00
modification_date: 2025-10-19T12:09:47-04:00
catégorie: ""
tags:
- tag1
- tag2
- test
- test2
- home
aliases: []
status: en-cours
publish: true
favoris: true
template: true
task: true
archive: true
draft: true
private: true
first_name: Bruno
birth_date: 2025-06-18
email: [email protected]
number: 12345
todo: false
url: https://google.com
image: https://images.unsplash.com/photo-1675789652575-0a5d2425b6c2?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80
---
# Test 1 Markdown
## Titres
# Niveau 1
#tag1 #tag2 #test #test2
## Niveau 2
### Niveau 3
#### Niveau 4
##### Niveau 5
###### Niveau 6
[[test2]]
[[folder2/test2|test2]]
## Mise en emphase
*Italique* et _italique_
**Gras** et __gras__
***Gras italique***
~~Barré~~
Citation en ligne : « > Ceci est une citation »
## Citations
> Ceci est un bloc de citation
>
>> Citation imbriquée
>>
>
> Fin de la citation principale.
## Footnotes
Le Markdown peut inclure des notes de bas de page[^1].
## Listes
- Élément non ordonné 1
- Élément non ordonné 2
- Sous-élément 2.1
- Sous-élément 2.2
- Élément non ordonné 3
1. Premier élément ordonné
2. Deuxième élément ordonné
1. Sous-élément 2.1
2. Sous-élément 2.2
3. Troisième élément ordonné
- [ ] Tâche à faire
- [X] Tâche terminée
## Images
![[Voute_IT.png]]
![[Fichier_not_found.png]]
![[document_pdf.pdf]]
## Liens et images
[Lien vers le site officiel d'Obsidian](https://obsidian.md)
![Image de démonstration](https://static0.howtogeekimages.com/wordpress/wp-content/uploads/2019/12/markdown-logo-on-a-blue-background.png?q=50&fit=crop&w=1200&h=675&dpr=1.5 "Image de test")
![Image de démonstration](https://static0.howtogeekimages.com/wordpress/wp-content/uploads/2019/12/markdown-logo-on-a-blue-background.png?q=50&fit=crop&w=1200&h=675&dpr=1.5)
## Tableaux
| Syntaxe | Description | Exemple |
| -------------- | ----------------- | ------------------------- |
| `*italique*` | Texte en italique | *italique* |
| `**gras**` | Texte en gras | **gras** |
| `` `code` `` | Code en ligne | `console.log('Hello');` |
## Code
### Code en ligne
Exemple : `const message = 'Hello, Markdown!';`
### Bloc de code multiligne
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-demo',
template: `<h1>{{ title }}</h1>`
})
export class DemoComponent {
title = 'Démo Markdown';
}
```
```python
print('Hello, Markdown!')
```
```javascript
console.log('Hello, Markdown!');
```
```java
public class Demo {
public static void main(String[] args) {
System.out.println("Hello, Markdown!");
}
}
```
### Bloc de code shell
```bash
docker compose up -d
curl http://localhost:4000/api/health
```
### Variantes supplémentaires de blocs de code
```bash
echo "Bloc de code avec tildes"
ls -al
```
// Exemple de bloc indenté
const numbers = [1, 2, 3];
console.log(numbers.map(n => n * 2));
## Mathématiques (LaTeX)
Expression en ligne : $E = mc^2$
Bloc de formule :
$$
\int_{0}^{\pi} \sin(x)\,dx = 2
$$
## Tableaux de texte sur plusieurs colonnes (Markdown avancé)
| Colonne A | Colonne B |
| --------- | --------- |
| Ligne 1A | Ligne 1B |
| Ligne 2A | Ligne 2B |
## Blocs de mise en évidence / callouts
> [!note]
> Ceci est une note informative.
---
> [!tip]
> Astuce : Utilisez `npm run dev` pour tester rapidement.
---
> [!warning]
> Attention : Vérifiez vos chemins avant de lancer un build.
---
> [!danger]
> Danger : Ne déployez pas sans tests.
---
## Diagrammes Mermaid
```mermaid
flowchart LR
A[Début] --> B{Build ?}
B -- Oui --> C[Exécuter les tests]
B -- Non --> D[Corriger le code]
C --> E{Tests OK ?}
E -- Oui --> F[Déployer]
E -- Non --> D
```
## Encadrés de code Obsidian (admonitions personnalisées)
```ad-note
title: À retenir
Assurez-vous que `vault/` contient vos notes Markdown.
```
```ad-example
title: Exemple de requête API
```http
GET /api/health HTTP/1.1
Host: localhost:4000
```
## Tableaux à alignement mixte
| Aligné à gauche | Centré | Aligné à droite |
| :---------------- | :------: | ----------------: |
| Valeur A | Valeur B | Valeur C |
| 123 | 456 | 789 |
## Liens internes (type Obsidian)
- [[welcome]]
- [[features/internal-links]]
- [[features/graph-view]]
- [[NonExistentNote]]
[[titi-coco]]
## Contenu HTML brut
<details>
<summary>Cliquer pour déplier</summary>
<p>Contenu additionnel visible dans les visionneuses Markdown qui supportent le HTML.</p>
</details>
## Sections horizontales
Fin de la page de test.
[^1]: Ceci est un exemple de note de bas de page.
+3 -1
View File
@@ -1,5 +1,5 @@
---
titre: Nouvelle note 2
titre: Bruno Charest
auteur: Bruno Charest
creation_date: 2025-10-24T12:24:03.706Z
modification_date: 2025-10-24T08:24:04-04:00
@@ -18,3 +18,5 @@ draft: false
private: false
readOnly: false
---
# TEST
-19
View File
@@ -1,19 +0,0 @@
---
titre: "Nouvelle note 2"
auteur: "Bruno Charest"
creation_date: "2025-10-24T12:24:03.706Z"
modification_date: "2025-10-24T08:24:04-04:00"
catégorie: ""
tags: [""]
aliases: [""]
status: "en-cours"
publish: false
favoris: false
template: false
task: false
archive: false
draft: false
private: false
readOnly: false
---