confermato che purtroppo è un limite di obsidian / chrome, non si puo risolvere, farò una semplice preview e basta nel documento

This commit is contained in:
gabriele-cusato 2026-03-16 08:54:35 +01:00
parent d51f8f54ba
commit 71eef066b7
3 changed files with 24 additions and 0 deletions

View file

@ -207,6 +207,14 @@ cd C:\Projects\pluginObsidian\handWrittenMarkdownConverter\HandTranscriptMd; nod
- Come distinguerle: `span.closest('.cm-editor')` vs `span.closest('.markdown-reading-view')`
- Questo riduce il CE=false a un'area minima → handwriting dovrebbe funzionare nelle righe di testo circostanti
**Idea — Modalità handwriting / preview (switch globale nelle impostazioni)**:
- L'utente sceglie tra due modalità tramite un toggle nelle impostazioni (o un comando da palette):
- **Modalità handwriting**: i riquadri mostrano solo un piccolo badge/placeholder nel documento (niente SVG piena). Tappando il badge si apre la tab editor. L'handwriting Android funziona nel testo circostante.
- **Modalità preview**: i riquadri mostrano l'SVG completa inline, come ora. Niente handwriting Android, ma si vede il disegno direttamente nel documento.
- La modalità si potrebbe cambiare anche al volo senza ricaricare Obsidian (il MutationObserver ridecorarebbe gli span al cambio impostazione)
- Su PC (nessun conflitto handwriting) la modalità preview sarebbe sempre quella giusta; su Android si sceglierebbe in base al workflow del momento
- Implementazione: aggiungere `hwmMode: 'handwriting' | 'preview'` a `HandwritingSettings`; in `tryDecorate()` controllare la modalità e decidere se mostrare badge o SVG piena
### Altri task aperti
1. **Migliorare il riconoscimento dei caratteri speciali markdown**`src/recognizer.ts` + `src/md-parser.ts`:

View file

@ -89,6 +89,12 @@ function setupMutationObserver(plugin: HandwritingPlugin) {
// Marca subito come decorato per evitare doppia elaborazione
span.dataset.hwmDecorated = '1';
// TEST A: pointer-events: none sullo span.
// Ipotesi: Chrome usa lo stesso hit-test dei pointer events per la
// proximity detection dell'handwriting → con none, ignora lo span e
// trova il cm-content[ce=true] sottostante → handwriting torna attivo.
span.style.pointerEvents = 'none';
// NESSUNA modifica allo span dentro cm-content.
// Lo lasciamo identico a un'immagine normale: nessuna classe extra,
// nessun figlio aggiunto. Questo evita di rompere l'handwriting Android

View file

@ -17,6 +17,16 @@
pointer-events: auto;
}
/* TEST B: limita l'altezza dell'immagine SVG handwriting nel documento.
Ipotesi: l'SVG dopo auto-expand supera i 300px copre più area
aumenta l'interferenza con la proximity detection handwriting Android
(40dp dal bordo). Limitando a 300px riduciamo l'area CE=false.
object-fit: contain mantiene le proporzioni senza tagliare il disegno. */
.internal-embed[src*="_handwriting/"] img {
max-height: 300px;
object-fit: contain;
}
/* Variante wiki ![[svg]]:
La classe hwm_container viene aggiunta DIRETTAMENTE allo span
.internal-embed di Obsidian (nessun wrapper esterno, per non