feat: enhance note creation and navigation UX
- Added note creation event handlers to sync selection, scrolling and focus across components - Improved context menu styling with better opacity and z-index handling - Updated mobile layout to hide search input on larger screens - Fixed focus timing issues in move-note-to-folder component - Added URL state management for newly created notes - Removed unused archived note files - Added proper note ID tracking and scroll-into-view behavior - Enhanced error
This commit is contained in:
parent
0ae9cae1eb
commit
917af04642
@ -31,6 +31,8 @@
|
||||
(parametersOpened)="setView('parameters')"
|
||||
(testsPanelRequested)="setView('tests-panel')"
|
||||
(helpPageRequested)="openHelpPage()"
|
||||
(noteCreated)="onNoteCreated($event)"
|
||||
(noteCreatedAndSelected)="onNoteCreatedAndSelected($event)"
|
||||
></app-shell-nimbus-layout>
|
||||
} @else {
|
||||
<main class="relative flex min-h-screen flex-col bg-bg-main text-text-main lg:flex-row lg:h-screen lg:overflow-hidden">
|
||||
@ -500,7 +502,7 @@
|
||||
}
|
||||
</button>
|
||||
</div>
|
||||
<div class="flex flex-1 items-center gap-3">
|
||||
<div class="flex flex-1 items-center gap-3 lg:hidden">
|
||||
<div class="relative w-full flex-1 min-w-0">
|
||||
<app-search-input-with-assistant
|
||||
[value]="sidebarSearchTerm()"
|
||||
@ -514,7 +516,7 @@
|
||||
/>
|
||||
</div>
|
||||
<button
|
||||
class="hidden rounded-full border border-border px-3 py-2 text-xs font-semibold uppercase tracking-wide text-text-muted transition hover:bg-bg-muted lg:inline-flex"
|
||||
class="rounded-full border border-border px-3 py-2 text-xs font-semibold uppercase tracking-wide text-text-muted transition hover:bg-bg-muted"
|
||||
(click)="toggleOutline()"
|
||||
[attr.aria-pressed]="isOutlineOpen()"
|
||||
>
|
||||
|
||||
@ -11,6 +11,7 @@ import { ThemeService } from './app/core/services/theme.service';
|
||||
import { LogService } from './core/logging/log.service';
|
||||
import { UiModeService } from './app/shared/services/ui-mode.service';
|
||||
import { UrlStateService } from './app/services/url-state.service';
|
||||
import { EditorStateService } from './services/editor-state.service';
|
||||
|
||||
// Components
|
||||
import { FileExplorerComponent } from './components/file-explorer/file-explorer.component';
|
||||
@ -91,6 +92,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
private elementRef = inject(ElementRef);
|
||||
private readonly drawingsFiles = inject(DrawingsFileService);
|
||||
private readonly urlState = inject(UrlStateService);
|
||||
private readonly editorState = inject(EditorStateService);
|
||||
|
||||
// --- State Signals ---
|
||||
isSidebarOpen = signal<boolean>(true);
|
||||
@ -129,6 +131,37 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
this.scheduleApplyDocumentHighlight();
|
||||
}
|
||||
|
||||
onNoteCreated(noteId: string): void {
|
||||
queueMicrotask(async () => {
|
||||
await this.selectNote(noteId);
|
||||
const note = this.vaultService.getNoteById(noteId);
|
||||
if (note) {
|
||||
const content = note.rawContent ?? note.content ?? '';
|
||||
this.editorState.enterEditMode(note.filePath, content);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
onNoteCreatedAndSelected(event: { id: string; filePath: string }): void {
|
||||
// URL is already updated by NotesListComponent via UrlStateService.setNote()
|
||||
// Selection will be updated by AppComponent effects watching UrlStateService
|
||||
// Here we just ensure scroll + focus in the notes list
|
||||
queueMicrotask(() => {
|
||||
// Scroll to the newly created note in the list (if visible)
|
||||
const listContainer = document.querySelector('.list-scroll');
|
||||
if (listContainer) {
|
||||
const noteEl = listContainer.querySelector(`li[data-note-id="${event.id}"]`) as HTMLElement | null;
|
||||
if (noteEl) {
|
||||
try {
|
||||
noteEl.scrollIntoView({ block: 'nearest', inline: 'nearest' });
|
||||
} catch (e) {
|
||||
console.warn('Failed to scroll to note:', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
startCenterResize(event: PointerEvent): void {
|
||||
event.preventDefault();
|
||||
const handle = event.currentTarget as HTMLElement | null;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { Component, EventEmitter, Output, computed, signal, effect, inject, ChangeDetectionStrategy } from '@angular/core';
|
||||
import { Component, EventEmitter, Output, computed, signal, effect, inject, ChangeDetectionStrategy, ViewChild, ElementRef } from '@angular/core';
|
||||
import { input } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import type { Note } from '../../../types';
|
||||
@ -9,6 +9,7 @@ import { NoteCreationService } from '../../services/note-creation.service';
|
||||
import { NoteContextMenuComponent } from '../../../components/note-context-menu/note-context-menu.component';
|
||||
import { WarningPanelComponent } from '../../components/warning-panel/warning-panel.component';
|
||||
import { NoteContextMenuService } from '../../services/note-context-menu.service';
|
||||
import { UrlStateService } from '../../services/url-state.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-notes-list',
|
||||
@ -117,7 +118,7 @@ import { NoteContextMenuService } from '../../services/note-context-menu.service
|
||||
</div>
|
||||
|
||||
<!-- List Container -->
|
||||
<div class="flex-1 min-h-0 overflow-y-auto list-scroll" appScrollableOverlay>
|
||||
<div class="flex-1 min-h-0 overflow-y-auto list-scroll" appScrollableOverlay #listContainer>
|
||||
<!-- Empty state when a folder is selected but no notes match -->
|
||||
<div *ngIf="(folderFilter() && filtered().length === 0)" class="h-full min-h-[240px] flex items-center justify-center text-center p-6">
|
||||
<div>
|
||||
@ -133,10 +134,12 @@ import { NoteContextMenuService } from '../../services/note-context-menu.service
|
||||
<ul class="notes-list">
|
||||
<li *ngFor="let n of filtered()"
|
||||
class="note-row cursor-pointer"
|
||||
[class.active]="selectedId() === n.id"
|
||||
[class.active]="(selectedId() === n.id) || (pendingSelectId() === n.id)"
|
||||
[ngClass]="getListItemClasses()"
|
||||
[ngStyle]="getNoteGradientStyle(n)"
|
||||
[attr.data-note-path]="n.filePath"
|
||||
[attr.data-note-id]="n.id"
|
||||
tabindex="-1"
|
||||
(click)="openNote.emit(n.id)"
|
||||
(contextmenu)="openContextMenu($event, n)">
|
||||
<!-- Compact View -->
|
||||
@ -373,11 +376,15 @@ export class NotesListComponent {
|
||||
@Output() queryChange = new EventEmitter<string>();
|
||||
@Output() clearQuickLinkFilter = new EventEmitter<void>();
|
||||
@Output() noteCreated = new EventEmitter<string>();
|
||||
@Output() noteCreatedAndSelected = new EventEmitter<{ id: string; filePath: string }>();
|
||||
|
||||
private store = inject(TagFilterStore);
|
||||
readonly state = inject(NotesListStateService);
|
||||
private noteCreationService = inject(NoteCreationService);
|
||||
readonly contextMenuService = inject(NoteContextMenuService);
|
||||
@ViewChild('listContainer') listContainer?: ElementRef<HTMLElement>;
|
||||
private urlState = inject(UrlStateService);
|
||||
private pendingSelectId = signal<string | null>(null);
|
||||
|
||||
// Delete warning modal state
|
||||
deleteWarningOpen = signal<boolean>(false);
|
||||
@ -435,6 +442,45 @@ export class NotesListComponent {
|
||||
}, 10);
|
||||
});
|
||||
|
||||
private scrollToSelectedEffect = effect(() => {
|
||||
const id = this.selectedId() || this.pendingSelectId();
|
||||
if (!id) return;
|
||||
const host = this.listContainer?.nativeElement;
|
||||
if (!host) return;
|
||||
|
||||
const tryFocus = () => {
|
||||
const el = host.querySelector(`li[data-note-id="${id}"]`) as HTMLElement | null;
|
||||
if (el) {
|
||||
try { el.scrollIntoView({ block: 'nearest', inline: 'nearest' }); } catch {}
|
||||
try { el.focus({ preventScroll: true } as any); } catch {}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
// Attempt after microtask, then a few RAF retries to wait for DOM
|
||||
queueMicrotask(() => {
|
||||
if (tryFocus()) {
|
||||
// If parent hasn't yet reflected selection, keep local pending highlight
|
||||
return;
|
||||
}
|
||||
let attempts = 4;
|
||||
const raf = () => {
|
||||
if (tryFocus()) return;
|
||||
if (--attempts > 0) requestAnimationFrame(raf);
|
||||
};
|
||||
requestAnimationFrame(raf);
|
||||
});
|
||||
});
|
||||
|
||||
private clearPendingWhenSynced = effect(() => {
|
||||
const sel = this.selectedId();
|
||||
const pending = this.pendingSelectId();
|
||||
if (sel && pending && sel === pending) {
|
||||
this.pendingSelectId.set(null);
|
||||
}
|
||||
});
|
||||
|
||||
private syncTagFromStore = effect(() => {
|
||||
const inputTag = this.tagFilter();
|
||||
if (inputTag !== null && inputTag !== undefined) {
|
||||
@ -603,8 +649,27 @@ export class NotesListComponent {
|
||||
|
||||
this.noteCreationService.createNote(fileName, folderPath)
|
||||
.then(response => {
|
||||
if (!response?.filePath || !response?.id) {
|
||||
console.error('Invalid response from note creation:', response);
|
||||
this.state.setRequestStats(false, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
// 1) Set URL immediately with note + folder
|
||||
this.urlState.setNote(response.filePath, folderPath).catch(err => {
|
||||
console.error('Failed to update URL:', err);
|
||||
});
|
||||
|
||||
// 2) Local optimistic selection
|
||||
this.pendingSelectId.set(response.id);
|
||||
|
||||
// 3) Emit events for parent to handle scroll + focus
|
||||
this.noteCreated.emit(response.id);
|
||||
this.openNote.emit(response.id);
|
||||
this.noteCreatedAndSelected.emit({
|
||||
id: response.id,
|
||||
filePath: response.filePath
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Failed to create note:', error);
|
||||
|
||||
@ -132,7 +132,7 @@ export class MoveNoteToFolderComponent {
|
||||
|
||||
queueMicrotask(() => {
|
||||
this.computeMenuPosition();
|
||||
this.focusSearchField();
|
||||
setTimeout(() => this.focusSearchField(), 0);
|
||||
});
|
||||
}
|
||||
|
||||
@ -308,6 +308,9 @@ export class MoveNoteToFolderComponent {
|
||||
}
|
||||
|
||||
private focusSearchField(): void {
|
||||
if (!this.showMenu()) {
|
||||
return;
|
||||
}
|
||||
const el = this.searchField?.nativeElement;
|
||||
if (el) {
|
||||
el.focus();
|
||||
|
||||
@ -70,6 +70,7 @@ import { UrlStateService } from '../../services/url-state.service';
|
||||
(testsPanelSelected)="onTestsPanelSelected()"
|
||||
(helpPageSelected)="onHelpPageSelected()"
|
||||
(aboutSelected)="onAboutSelected()"
|
||||
(noteCreated)="onNoteCreated($event)"
|
||||
/>
|
||||
</aside>
|
||||
</ng-container>
|
||||
@ -185,6 +186,8 @@ import { UrlStateService } from '../../services/url-state.service';
|
||||
(openNote)="onOpenNote($event)"
|
||||
(queryChange)="onQueryChange($event)"
|
||||
(clearQuickLinkFilter)="onClearQuickLinkFilter()"
|
||||
(noteCreated)="onNoteCreated($event)"
|
||||
(noteCreatedAndSelected)="onNoteCreatedAndSelected($event)"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
@ -260,7 +263,7 @@ import { UrlStateService } from '../../services/url-state.service';
|
||||
<app-file-explorer [nodes]="effectiveFileTree" [selectedNoteId]="selectedNoteId" [foldersOnly]="true" [quickLinkFilter]="quickLinkFilter" (folderSelected)="onFolderSelected($event)" (fileSelected)="onOpenNote($event)"></app-file-explorer>
|
||||
</div>
|
||||
<div [hidden]="mobileNav.activeTab() !== 'list'" class="h-full overflow-y-auto" appScrollableOverlay>
|
||||
<app-notes-list [notes]="vault.allNotes()" [folderFilter]="folderFilter" [tagFilter]="tagFilter" [quickLinkFilter]="quickLinkFilter" [query]="listQuery" [selectedId]="selectedNoteId" (queryChange)="onQueryChange($event)" (openNote)="onOpenNote($event)" (clearQuickLinkFilter)="onClearQuickLinkFilter()"></app-notes-list>
|
||||
<app-notes-list [notes]="vault.allNotes()" [folderFilter]="folderFilter" [tagFilter]="tagFilter" [quickLinkFilter]="quickLinkFilter" [query]="listQuery" [selectedId]="selectedNoteId" (queryChange)="onQueryChange($event)" (openNote)="onOpenNote($event)" (clearQuickLinkFilter)="onClearQuickLinkFilter()" (noteCreated)="onNoteCreated($event)" (noteCreatedAndSelected)="onNoteCreatedAndSelected($event)"></app-notes-list>
|
||||
</div>
|
||||
<div [hidden]="mobileNav.activeTab() !== 'page'" class="note-content-area h-full overflow-y-auto px-3 py-4" appScrollableOverlay>
|
||||
<app-markdown-playground *ngIf="activeView === 'markdown-playground'"></app-markdown-playground>
|
||||
@ -368,6 +371,8 @@ export class AppShellNimbusLayoutComponent {
|
||||
@Output() navigateHeading = new EventEmitter<string>();
|
||||
@Output() searchTermChange = new EventEmitter<string>();
|
||||
@Output() searchOptionsChange = new EventEmitter<any>();
|
||||
@Output() noteCreated = new EventEmitter<string>();
|
||||
@Output() noteCreatedAndSelected = new EventEmitter<{ id: string; filePath: string }>();
|
||||
@Output() markdownPlaygroundSelected = new EventEmitter<void>();
|
||||
@Output() parametersOpened = new EventEmitter<void>();
|
||||
@Output() helpPageRequested = new EventEmitter<void>();
|
||||
@ -632,6 +637,14 @@ export class AppShellNimbusLayoutComponent {
|
||||
}
|
||||
}
|
||||
|
||||
onNoteCreated(noteId: string) {
|
||||
this.noteCreated.emit(noteId);
|
||||
}
|
||||
|
||||
onNoteCreatedAndSelected(event: { id: string; filePath: string }) {
|
||||
this.noteCreatedAndSelected.emit(event);
|
||||
}
|
||||
|
||||
onNoteSelectedMobile(noteId: string) {
|
||||
if (!noteId) return;
|
||||
this.noteSelected.emit(noteId);
|
||||
|
||||
@ -348,6 +348,32 @@ export class UrlStateService implements OnDestroy {
|
||||
await this.updateUrl({ search: searchTerm || undefined });
|
||||
}
|
||||
|
||||
/**
|
||||
* Définir la note et optionnellement le dossier (pour création de note)
|
||||
* Utilise merge pour conserver les autres paramètres (search, etc.)
|
||||
*/
|
||||
async setNote(notePath: string, folderPath?: string): Promise<void> {
|
||||
const normalized = (notePath ?? '').trim()
|
||||
.replace(/\\/g, '/')
|
||||
.replace(/^\/+/, '');
|
||||
|
||||
if (!normalized) {
|
||||
console.warn('setNote() called with empty path');
|
||||
return;
|
||||
}
|
||||
|
||||
const queryParams: any = { note: normalized };
|
||||
if (folderPath) {
|
||||
queryParams.folder = folderPath.replace(/\\/g, '/').replace(/^\/+/, '');
|
||||
}
|
||||
|
||||
await this.router.navigate([], {
|
||||
queryParams,
|
||||
queryParamsHandling: 'merge',
|
||||
preserveFragment: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Mettre à jour l'URL avec le nouvel état
|
||||
*/
|
||||
|
||||
@ -33,7 +33,7 @@ type NoteAction =
|
||||
imports: [CommonModule],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
styles: [`
|
||||
:host { position: fixed; inset: 0; pointer-events: none; z-index: 9999; }
|
||||
:host { position: fixed; inset: 0; pointer-events: none; z-index: 2147483646; }
|
||||
.ctx {
|
||||
pointer-events: auto;
|
||||
min-width: 17.5rem;
|
||||
@ -41,15 +41,36 @@ type NoteAction =
|
||||
border-radius: 1rem;
|
||||
padding: 0.5rem 0;
|
||||
box-shadow: 0 10px 30px rgba(0,0,0,.25);
|
||||
backdrop-filter: blur(6px);
|
||||
/* Ensure the menu is fully opaque (no translucency) */
|
||||
-webkit-backdrop-filter: none;
|
||||
backdrop-filter: none;
|
||||
position: relative; /* for cover layer */
|
||||
isolation: isolate; /* prevent blending with background */
|
||||
mix-blend-mode: normal;
|
||||
overflow: hidden; /* clip inner cover to rounded corners */
|
||||
animation: fadeIn .12s ease-out;
|
||||
transform-origin: top left;
|
||||
user-select: none;
|
||||
background: var(--card, #ffffff);
|
||||
/* Use theme variable for solid background (themes define solid hex for --card) */
|
||||
background: var(--card) !important;
|
||||
background-clip: padding-box;
|
||||
opacity: 1 !important;
|
||||
filter: none !important;
|
||||
border: 1px solid var(--border, #e5e7eb);
|
||||
color: var(--text-main, var(--fg, #111827));
|
||||
z-index: 10000;
|
||||
z-index: 2147483647;
|
||||
}
|
||||
/* Opaque cover to defeat any inherited translucency */
|
||||
.ctx::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: var(--card);
|
||||
border-radius: inherit;
|
||||
z-index: 0; /* stays behind menu content but inside .ctx */
|
||||
}
|
||||
.ctx > * { position: relative; z-index: 1; }
|
||||
/* Theme colors come from CSS variables; no hardcoded dark override needed */
|
||||
.item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -266,6 +287,14 @@ export class NoteContextMenuComponent implements OnChanges, OnDestroy {
|
||||
// listeners globaux qui ferment le menu
|
||||
this.removeResize = this.r2.listen('window', 'resize', () => this.reposition());
|
||||
this.removeScroll = this.r2.listen('window', 'scroll', () => this.reposition());
|
||||
|
||||
// Move host to document.body to escape any transformed/opacity ancestors
|
||||
try {
|
||||
const el = this.host.nativeElement;
|
||||
if (el && el.parentElement !== document.body) {
|
||||
document.body.appendChild(el);
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
|
||||
ngOnChanges(changes: SimpleChanges): void {
|
||||
|
||||
17
vault/.trash/Nouvelle note 10_2025-10-26T12-56-27-766Z.md
Normal file
17
vault/.trash/Nouvelle note 10_2025-10-26T12-56-27-766Z.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 10
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T12:55:57.912Z
|
||||
modification_date: 2025-10-26T08:55:58-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/.trash/Nouvelle note 7_2025-10-26T12-56-24-941Z.md
Normal file
17
vault/.trash/Nouvelle note 7_2025-10-26T12-56-24-941Z.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 7
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T02:52:13.988Z
|
||||
modification_date: 2025-10-25T22:52:14-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/.trash/Nouvelle note 8_2025-10-26T12-56-18-613Z.md
Normal file
17
vault/.trash/Nouvelle note 8_2025-10-26T12-56-18-613Z.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 8
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T12:50:05.540Z
|
||||
modification_date: 2025-10-26T08:50:05-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/.trash/Nouvelle note 8_2025-10-26T13-08-01-036Z.md
Normal file
17
vault/.trash/Nouvelle note 8_2025-10-26T13-08-01-036Z.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 8
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T13:03:32.753Z
|
||||
modification_date: 2025-10-26T09:03:33-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/.trash/Nouvelle note 8_2025-10-26T14-55-04-108Z.md
Normal file
17
vault/.trash/Nouvelle note 8_2025-10-26T14-55-04-108Z.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 8
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T13:17:51.112Z
|
||||
modification_date: 2025-10-26T09:17:51-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/.trash/Nouvelle note 9_2025-10-26T12-56-21-979Z.md
Normal file
17
vault/.trash/Nouvelle note 9_2025-10-26T12-56-21-979Z.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 9
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T12:50:23.757Z
|
||||
modification_date: 2025-10-26T08:50:24-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
16
vault/folder-4/Nouvelle note 10.md
Normal file
16
vault/folder-4/Nouvelle note 10.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
titre: "Nouvelle note 10"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T14:55:55.330Z"
|
||||
modification_date: "2025-10-26T10:55:55-04:00"
|
||||
tags: [""]
|
||||
aliases: [""]
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/folder-4/Nouvelle note 10.md.bak
Normal file
15
vault/folder-4/Nouvelle note 10.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 10"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T14:55:55.330Z"
|
||||
modification_date: "2025-10-26T14:55:55.330Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/folder-4/Nouvelle note 11.md
Normal file
17
vault/folder-4/Nouvelle note 11.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 11
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T14:55:56.550Z
|
||||
modification_date: 2025-10-26T10:55:56-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/folder-4/Nouvelle note 11.md.bak
Normal file
15
vault/folder-4/Nouvelle note 11.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 11"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T14:55:56.550Z"
|
||||
modification_date: "2025-10-26T14:55:56.550Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/folder-4/Nouvelle note 12.md
Normal file
17
vault/folder-4/Nouvelle note 12.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 12
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T14:55:57.870Z
|
||||
modification_date: 2025-10-26T10:55:58-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/folder-4/Nouvelle note 12.md.bak
Normal file
15
vault/folder-4/Nouvelle note 12.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 12"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T14:55:57.870Z"
|
||||
modification_date: "2025-10-26T14:55:57.870Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/folder-4/Nouvelle note 13.md
Normal file
17
vault/folder-4/Nouvelle note 13.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 13
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T14:56:06.375Z
|
||||
modification_date: 2025-10-26T10:56:06-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/folder-4/Nouvelle note 13.md.bak
Normal file
15
vault/folder-4/Nouvelle note 13.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 13"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T14:56:06.375Z"
|
||||
modification_date: "2025-10-26T14:56:06.375Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/folder-4/Nouvelle note 7.md
Normal file
17
vault/folder-4/Nouvelle note 7.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 7
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T13:17:42.008Z
|
||||
modification_date: 2025-10-26T09:17:42-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/folder-4/Nouvelle note 7.md.bak
Normal file
15
vault/folder-4/Nouvelle note 7.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 7"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T13:17:42.008Z"
|
||||
modification_date: "2025-10-26T13:17:42.008Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/folder-4/Nouvelle note 8.md
Normal file
17
vault/folder-4/Nouvelle note 8.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 8
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T14:55:08.540Z
|
||||
modification_date: 2025-10-26T10:55:08-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/folder-4/Nouvelle note 8.md.bak
Normal file
15
vault/folder-4/Nouvelle note 8.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 8"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T14:55:08.540Z"
|
||||
modification_date: "2025-10-26T14:55:08.540Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/folder-4/Nouvelle note 9.md
Normal file
17
vault/folder-4/Nouvelle note 9.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 9
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T14:55:54.071Z
|
||||
modification_date: 2025-10-26T10:55:54-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/folder-4/Nouvelle note 9.md.bak
Normal file
15
vault/folder-4/Nouvelle note 9.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 9"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T14:55:54.071Z"
|
||||
modification_date: "2025-10-26T14:55:54.071Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
---
|
||||
titre: Nouvelle note
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-24T00:38:23.192Z
|
||||
modification_date: 2025-10-23T20:38:23-04:00
|
||||
creation_date: 2025-10-26T13:14:53.395Z
|
||||
modification_date: 2025-10-26T09:14:53-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
---
|
||||
titre: "Nouvelle note"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-24T00:38:23.192Z"
|
||||
modification_date: "2025-10-24T00:38:23.192Z"
|
||||
creation_date: "2025-10-26T13:14:53.395Z"
|
||||
modification_date: "2025-10-26T13:14:53.395Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
|
||||
17
vault/folder-4/tata.md
Normal file
17
vault/folder-4/tata.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-24T00:38:23.192Z
|
||||
modification_date: 2025-10-23T20:38:23-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/folder-4/titi.md
Normal file
17
vault/folder-4/titi.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 8
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T13:10:06.882Z
|
||||
modification_date: 2025-10-26T09:10:07-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/folder-4/toto.md
Normal file
17
vault/folder-4/toto.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 7
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T12:56:37.044Z
|
||||
modification_date: 2025-10-26T08:56:37-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
17
vault/nouveauDossierRacine/Nouvelle note 3.md
Normal file
17
vault/nouveauDossierRacine/Nouvelle note 3.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 3
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T02:24:37.457Z
|
||||
modification_date: 2025-10-25T22:24:37-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/nouveauDossierRacine/Nouvelle note 3.md.bak
Normal file
15
vault/nouveauDossierRacine/Nouvelle note 3.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 3"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T02:24:37.457Z"
|
||||
modification_date: "2025-10-26T02:24:37.457Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/nouveauDossierRacine/Nouvelle note 5.md
Normal file
17
vault/nouveauDossierRacine/Nouvelle note 5.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 5
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T02:40:02.515Z
|
||||
modification_date: 2025-10-25T22:40:02-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/nouveauDossierRacine/Nouvelle note 5.md.bak
Normal file
15
vault/nouveauDossierRacine/Nouvelle note 5.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 5"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T02:40:02.515Z"
|
||||
modification_date: "2025-10-26T02:40:02.515Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
17
vault/nouveauDossierRacine/Nouvelle note 6.md
Normal file
17
vault/nouveauDossierRacine/Nouvelle note 6.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
titre: Nouvelle note 6
|
||||
auteur: Bruno Charest
|
||||
creation_date: 2025-10-26T02:41:08.391Z
|
||||
modification_date: 2025-10-25T22:41:08-04:00
|
||||
catégorie: ""
|
||||
tags: []
|
||||
aliases: []
|
||||
status: en-cours
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
15
vault/nouveauDossierRacine/Nouvelle note 6.md.bak
Normal file
15
vault/nouveauDossierRacine/Nouvelle note 6.md.bak
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
titre: "Nouvelle note 6"
|
||||
auteur: "Bruno Charest"
|
||||
creation_date: "2025-10-26T02:41:08.391Z"
|
||||
modification_date: "2025-10-26T02:41:08.391Z"
|
||||
status: "en-cours"
|
||||
publish: false
|
||||
favoris: false
|
||||
template: false
|
||||
task: false
|
||||
archive: false
|
||||
draft: false
|
||||
private: false
|
||||
---
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user