306 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			306 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 🚀 Commandes utiles - Wikilinks & Graph View
 | 
						|
 | 
						|
## 📦 Installation (déjà fait ✅)
 | 
						|
 | 
						|
Les dépendances sont déjà installées, mais si besoin :
 | 
						|
 | 
						|
```bash
 | 
						|
npm install d3-force d3-zoom d3-selection
 | 
						|
```
 | 
						|
 | 
						|
## 🧪 Tests
 | 
						|
 | 
						|
### Lancer les tests unitaires
 | 
						|
 | 
						|
```bash
 | 
						|
# Tous les tests
 | 
						|
ng test
 | 
						|
 | 
						|
# Seulement wikilink-parser
 | 
						|
ng test --include='**/wikilink-parser.service.spec.ts'
 | 
						|
 | 
						|
# Avec coverage
 | 
						|
ng test --code-coverage
 | 
						|
```
 | 
						|
 | 
						|
### Tests E2E (à créer si besoin)
 | 
						|
 | 
						|
```bash
 | 
						|
# Avec Playwright
 | 
						|
npx playwright test
 | 
						|
 | 
						|
# Mode interactif
 | 
						|
npx playwright test --ui
 | 
						|
```
 | 
						|
 | 
						|
## 🏃 Développement
 | 
						|
 | 
						|
### Démarrer le serveur de développement
 | 
						|
 | 
						|
```bash
 | 
						|
npm run dev
 | 
						|
# ou
 | 
						|
ng serve
 | 
						|
```
 | 
						|
 | 
						|
### Build production
 | 
						|
 | 
						|
```bash
 | 
						|
npm run build
 | 
						|
# ou
 | 
						|
ng build --configuration=production
 | 
						|
```
 | 
						|
 | 
						|
### Vérifier les types TypeScript
 | 
						|
 | 
						|
```bash
 | 
						|
npx tsc --noEmit
 | 
						|
```
 | 
						|
 | 
						|
## 🔍 Debug & Inspection
 | 
						|
 | 
						|
### Vérifier que l'index est construit
 | 
						|
 | 
						|
```typescript
 | 
						|
// Dans la console du navigateur (F12)
 | 
						|
// Après le chargement d'une note
 | 
						|
 | 
						|
// 1. Vérifier les nœuds
 | 
						|
const noteIndexService = document.querySelector('app-root')?.__ngContext__?.[8]?.get('NoteIndexService');
 | 
						|
console.log('Nodes:', noteIndexService?.getAllNodes()?.length);
 | 
						|
 | 
						|
// 2. Vérifier un graphe
 | 
						|
const graphData = noteIndexService?.buildFullGraphData();
 | 
						|
console.log('Graph:', graphData);
 | 
						|
```
 | 
						|
 | 
						|
### Inspecter les previews
 | 
						|
 | 
						|
```typescript
 | 
						|
// Console navigateur
 | 
						|
// Hover sur un wikilink puis :
 | 
						|
 | 
						|
const previewService = document.querySelector('app-root')?.__ngContext__?.[8]?.get('NotePreviewService');
 | 
						|
console.log('Preview service:', previewService);
 | 
						|
```
 | 
						|
 | 
						|
## 📊 Performance profiling
 | 
						|
 | 
						|
### Mesurer le parsing
 | 
						|
 | 
						|
```typescript
 | 
						|
// Dans votre composant
 | 
						|
const start = performance.now();
 | 
						|
const links = this.wikiLinkParser.parseWikiLinks(markdown);
 | 
						|
console.log('Parse time:', performance.now() - start, 'ms');
 | 
						|
```
 | 
						|
 | 
						|
### Mesurer le scan du vault
 | 
						|
 | 
						|
```typescript
 | 
						|
// Dans VaultService ou app.component
 | 
						|
console.time('Vault scan');
 | 
						|
this.noteIndexService.scanVault(notes);
 | 
						|
console.timeEnd('Vault scan');
 | 
						|
```
 | 
						|
 | 
						|
### Mesurer le rendu du graphe
 | 
						|
 | 
						|
```typescript
 | 
						|
// Dans GraphViewComponent
 | 
						|
console.time('Graph render');
 | 
						|
this.restartSimulation();
 | 
						|
console.timeEnd('Graph render');
 | 
						|
```
 | 
						|
 | 
						|
### Chrome DevTools Performance
 | 
						|
 | 
						|
1. Ouvrir DevTools (F12)
 | 
						|
2. Onglet "Performance"
 | 
						|
3. Record pendant :
 | 
						|
   - Hover sur wikilink
 | 
						|
   - Basculer vers Graph View
 | 
						|
   - Drag d'un nœud
 | 
						|
4. Analyser les flamegraphs
 | 
						|
 | 
						|
## 🧹 Maintenance
 | 
						|
 | 
						|
### Linter
 | 
						|
 | 
						|
```bash
 | 
						|
# Si ESLint est configuré
 | 
						|
npm run lint
 | 
						|
 | 
						|
# Auto-fix
 | 
						|
npm run lint -- --fix
 | 
						|
```
 | 
						|
 | 
						|
### Formatter
 | 
						|
 | 
						|
```bash
 | 
						|
# Si Prettier est configuré
 | 
						|
npx prettier --write "src/**/*.{ts,html,css}"
 | 
						|
```
 | 
						|
 | 
						|
## 🐛 Troubleshooting
 | 
						|
 | 
						|
### "Module not found: d3-force"
 | 
						|
 | 
						|
```bash
 | 
						|
npm install d3-force d3-zoom d3-selection
 | 
						|
```
 | 
						|
 | 
						|
### "Cannot find NoteIndexService"
 | 
						|
 | 
						|
Vérifier que le service est bien créé dans `src/services/note-index.service.ts`
 | 
						|
 | 
						|
### Réinitialiser node_modules
 | 
						|
 | 
						|
```bash
 | 
						|
rm -rf node_modules package-lock.json
 | 
						|
npm install
 | 
						|
```
 | 
						|
 | 
						|
### Vider le cache Angular
 | 
						|
 | 
						|
```bash
 | 
						|
rm -rf .angular/cache
 | 
						|
ng serve
 | 
						|
```
 | 
						|
 | 
						|
## 📝 Scripts NPM à ajouter (optionnel)
 | 
						|
 | 
						|
Ajouter dans `package.json` :
 | 
						|
 | 
						|
```json
 | 
						|
{
 | 
						|
  "scripts": {
 | 
						|
    "test:wikilinks": "ng test --include='**/wikilink*.spec.ts'",
 | 
						|
    "test:graph": "ng test --include='**/graph*.spec.ts'",
 | 
						|
    "test:coverage": "ng test --code-coverage --watch=false",
 | 
						|
    "build:stats": "ng build --stats-json",
 | 
						|
    "analyze": "webpack-bundle-analyzer dist/stats.json"
 | 
						|
  }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
Puis :
 | 
						|
 | 
						|
```bash
 | 
						|
npm run test:wikilinks
 | 
						|
npm run test:coverage
 | 
						|
```
 | 
						|
 | 
						|
## 🔍 Inspection des fichiers créés
 | 
						|
 | 
						|
### Lister tous les nouveaux fichiers
 | 
						|
 | 
						|
```bash
 | 
						|
# Services
 | 
						|
ls src/services/*wikilink* src/services/*note-index* src/services/*note-preview*
 | 
						|
 | 
						|
# Composants
 | 
						|
ls -R src/components/note-preview-card/
 | 
						|
ls -R src/components/graph-options-panel/
 | 
						|
ls -R src/components/graph-view-container/
 | 
						|
 | 
						|
# Documentation
 | 
						|
ls docs/WIKILINKS*
 | 
						|
ls INTEGRATION_CHECKLIST.md IMPLEMENTATION_SUMMARY.md
 | 
						|
```
 | 
						|
 | 
						|
### Compter les lignes de code
 | 
						|
 | 
						|
```bash
 | 
						|
# Total
 | 
						|
find src/services src/components -name "*.ts" -o -name "*.css" | xargs wc -l
 | 
						|
 | 
						|
# Seulement les nouveaux services
 | 
						|
wc -l src/services/wikilink-parser.service.ts
 | 
						|
wc -l src/services/note-index.service.ts
 | 
						|
wc -l src/services/note-preview.service.ts
 | 
						|
```
 | 
						|
 | 
						|
## 📚 Ouvrir la documentation
 | 
						|
 | 
						|
```bash
 | 
						|
# Windows
 | 
						|
start docs/WIKILINKS_README.md
 | 
						|
start INTEGRATION_CHECKLIST.md
 | 
						|
 | 
						|
# macOS
 | 
						|
open docs/WIKILINKS_README.md
 | 
						|
open INTEGRATION_CHECKLIST.md
 | 
						|
 | 
						|
# Linux
 | 
						|
xdg-open docs/WIKILINKS_README.md
 | 
						|
```
 | 
						|
 | 
						|
## 🎨 Personnalisation rapide
 | 
						|
 | 
						|
### Changer les couleurs
 | 
						|
 | 
						|
Éditer `src/styles.css` :
 | 
						|
 | 
						|
```css
 | 
						|
:root {
 | 
						|
  --wiki-link: #votre-couleur;
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Ajuster les forces du graphe
 | 
						|
 | 
						|
Éditer `src/components/graph-view-container/graph-view-container.component.ts` :
 | 
						|
 | 
						|
```typescript
 | 
						|
displayOptions = signal<GraphDisplayOptions>({
 | 
						|
  chargeStrength: -150,  // Changer ici
 | 
						|
  linkDistance: 120,     // Et ici
 | 
						|
  // ...
 | 
						|
});
 | 
						|
```
 | 
						|
 | 
						|
## ✅ Validation finale
 | 
						|
 | 
						|
### Checklist rapide
 | 
						|
 | 
						|
```bash
 | 
						|
# 1. Services existent ?
 | 
						|
ls src/services/wikilink-parser.service.ts
 | 
						|
ls src/services/note-index.service.ts
 | 
						|
ls src/services/note-preview.service.ts
 | 
						|
 | 
						|
# 2. Composants existent ?
 | 
						|
ls src/components/note-preview-card/note-preview-card.component.ts
 | 
						|
ls src/components/graph-options-panel/graph-options-panel.component.ts
 | 
						|
ls src/components/graph-view-container/graph-view-container.component.ts
 | 
						|
 | 
						|
# 3. Tests existent ?
 | 
						|
ls src/services/wikilink-parser.service.spec.ts
 | 
						|
 | 
						|
# 4. Documentation existe ?
 | 
						|
ls docs/WIKILINKS_README.md
 | 
						|
ls INTEGRATION_CHECKLIST.md
 | 
						|
 | 
						|
# Si tous les fichiers existent : ✅ READY TO GO!
 | 
						|
```
 | 
						|
 | 
						|
## 🚀 Lancer l'application
 | 
						|
 | 
						|
```bash
 | 
						|
# Terminal 1 : Backend (si nécessaire)
 | 
						|
cd server
 | 
						|
node index.mjs
 | 
						|
 | 
						|
# Terminal 2 : Frontend
 | 
						|
npm run dev
 | 
						|
```
 | 
						|
 | 
						|
Puis ouvrir : `http://localhost:4200`
 | 
						|
 | 
						|
---
 | 
						|
 | 
						|
**Prêt à tester !** 🎉
 | 
						|
 | 
						|
Pour l'intégration complète, suivez : `INTEGRATION_CHECKLIST.md`
 |