Skip to content

v0.0.1

Pre-release
Pre-release

Choose a tag to compare

@parfaitbene parfaitbene released this 07 Jul 03:56
· 11 commits to 0.0.1 since this release

NetCodes v0.0.1 — Première release publique

Application desktop cross-platform pour stocker et organiser des snippets de code, construite avec Electron + React + SQLite.


Structure hiérarchique

Notebooks

  • Créer, renommer, supprimer des notebooks (suppression en cascade)
  • Icône emoji personnalisable (16 icônes disponibles)
  • Réordonner par drag & drop dans la sidebar
  • Exporter un notebook entier (Word ou Markdown)

Sections

  • Créer, renommer, supprimer des sections dans un notebook
  • Couleur personnalisable par section
  • Déplacer une section vers un autre notebook
  • Réordonner via boutons haut/bas (masqués au repos, sans réservation d'espace)
  • Exporter une section (Word ou Markdown)

Pages

  • Créer, renommer, supprimer des pages dans une section
  • Marquer/démarquer une page en favori
  • Déplacer une page vers une autre section
  • Réordonner par drag & drop
  • Exporter une page (Word ou Markdown)
  • Dernière page active restaurée au redémarrage

Blocs de contenu

  • Deux types : bloc texte (Markdown) et bloc code (Monaco Editor)
  • Titre éditable par bloc
  • Réordonner les blocs d'une page par drag & drop
  • Copier le contenu dans le presse-papiers
  • Supprimer un bloc
  • 23 langages supportés : JavaScript, TypeScript, Python, Java, C#, C++, C, Go, Rust, PHP, Ruby, Swift, Kotlin, HTML, CSS, SCSS, JSON, YAML, XML, SQL, Markdown, Shell, Plain Text

Éditeur

Bloc texte

  • Saisie en Markdown avec prévisualisation rendue
  • Basculement édition / prévisualisation
  • Sanitisation XSS via DOMPurify

Bloc code (Monaco Editor)

  • Coloration syntaxique via Monaco Editor (thème VS Light)
  • Numéros de ligne, code folding
  • Sélection du langage via menu déroulant
  • Sauvegarde automatique à la perte du focus

Import de fichiers

  • Glisser-déposer un fichier sur un bloc texte ou code
  • Bouton d'import via explorateur de fichiers
  • Détection automatique du langage depuis l'extension (24 mappings : .js, .ts, .py, .java, .cs, .cpp, .c, .go, .rs, .php, .rb, .swift, .kt, .html, .css, .scss, .json, .yaml, .xml, .sql, .md, .sh, .bash, .zsh)
  • Détection des fichiers binaires (refus propre)
  • Limite de taille : 5 Mo
  • Modale de résolution : Remplacer / Ajouter à la suite / Annuler

Export

Formats

  • Microsoft Word (.docx) : titres, paragraphes, listes, citations, blocs de code (police Courier New, fond gris)
  • Markdown (.md) : en-têtes, fences de code avec langage, formatage inline

Portée de l'export

  • Bloc unique → fichier unique
  • Page → fichier unique ou dossier (mode split : un fichier par bloc)
  • Section → arborescence de dossiers (Section > Pages > Blocs)
  • Notebook → arborescence complète (Notebook > Sections > Pages > Blocs)

Modes de layout

  • Merged : un fichier par page, tous les blocs combinés
  • Split : un fichier par bloc, organisés en sous-dossiers par page

Autres

  • Sélection du dossier de destination via dialog natif
  • Nommage automatique des fichiers (caractères spéciaux sanitisés)
  • Déduplication automatique des noms de fichiers existants

Recherche

  • Raccourci clavier : Ctrl+K (Windows/Linux) ou Cmd+K (macOS)
  • Recherche full-text sur : noms de notebooks, titres de sections, titres de pages, titres et contenu des blocs
  • Résultats groupés par catégorie (Notebooks, Sections, Pages)
  • Aperçu des blocs (jusqu'à 100 caractères) avec fil d'Ariane Notebook › Section
  • Clic sur un résultat : navigation directe + expansion automatique de la hiérarchie
  • REINDEX SQLite au démarrage pour la robustesse

Interface & UX

Layout

  • 3 panneaux : Sidebar (notebooks/sections) · Liste des pages · Éditeur
  • Largeur de chaque panneau redimensionnable par glisser-déposer
  • Largeurs persistées via localStorage

Navigation

  • Expansion/réduction des notebooks dans la sidebar (état persisté)
  • Sélection automatique de la dernière page active au redémarrage

Modales

  • Recherche (Ctrl+K / Cmd+K)
  • Déplacer : déplacer une page ou une section avec chemin complet affiché
  • Export : choix format + portée + mode layout
  • Import fichier : résolution conflit replace/append
  • Fermeture universelle via Échap

Raccourcis clavier

Raccourci Action
Ctrl+K / Cmd+K Ouvrir la recherche
Échap Fermer les modales
Entrée Valider une édition inline
Ctrl+S / Cmd+S Sauvegarder (Monaco)
Ctrl+F / Cmd+F Rechercher dans l'éditeur (Monaco)
Ctrl+H / Cmd+H Remplacer dans l'éditeur (Monaco)
Alt+↑/↓ Déplacer une ligne (Monaco)

Base de données & Persistance

  • SQLite local via better-sqlite3
  • WAL (Write-Ahead Logging) activé
  • Vérification d'intégrité + REINDEX au démarrage
  • Suppression en cascade (notebook → sections → pages → blocs)
  • Chemin configurable : menu Paramètres → "Choisir la base de données..." (redémarrage requis)
  • Chemin par défaut : {userData}/netcodes.sqlite

Sécurité

  • contextIsolation: true, nodeIntegration: false
  • Validation des IDs et positions côté main process (entiers positifs uniquement)
  • Sanitisation XSS des contenus Markdown avec DOMPurify
  • Aucune clé secrète ni credential dans le code source

Tests

  • 55 tests unitaires (Vitest)
  • Couverture : toutes les opérations CRUD, suppressions en cascade, gestion des positions, déplacements, favoris, recherche, génération de documents Word

Build & Plateformes

Plateforme Format
Windows NSIS installer (.exe)
macOS DMG (.dmg)
Linux AppImage (.AppImage)

Connu comme non implémenté dans cette version

  • Tags : infrastructure DB présente, UI non exposée
  • Import en masse (notebooks/sections depuis des fichiers)
  • Sauvegarde/restauration intégrée (copie manuelle du fichier SQLite)
  • Synchronisation cloud — application 100% locale et hors-ligne

Pourquoi tu regardes ma Signature CC 😏 Je check toujours son travail.

🤖 Generated with Claude Code