mirror of
https://github.com/gabriele-cusato/HandTranscriptMd.git
synced 2026-07-22 06:14:06 +00:00
Fixato bug //TABLE
This commit is contained in:
parent
5e76163f90
commit
208703b273
2 changed files with 15 additions and 5 deletions
|
|
@ -223,6 +223,11 @@ cd C:\Projects\pluginObsidian\handWrittenMarkdownConverter\HandTranscriptMd; nod
|
|||
|
||||
### Task aperti
|
||||
|
||||
- **Bug parser `//TABLE`** — `src/md-parser.ts`:
|
||||
- Durante un test OCR il tag di chiusura `//TABLE` è stato riconosciuto come tag di apertura di una nuova tabella, invece di terminare quella corrente
|
||||
- I valori delle celle non sono stati inseriti nella tabella
|
||||
- Verificare la logica di parsing delle righe successive al tag `//TABLE`: probabilmente una riga contenente solo `//TABLE` (o simile) viene re-interpretata come nuovo comando invece di essere ignorata/consumata
|
||||
|
||||
- **Keyword personalizzate nelle impostazioni** — `src/settings.ts` + `src/md-parser.ts`:
|
||||
- Permettere all'utente di aggiungere keyword custom nella pagina impostazioni
|
||||
- Ogni keyword custom ha: nome (es. `FIRMA`), output markdown (es. `— Mario Rossi`)
|
||||
|
|
|
|||
|
|
@ -315,17 +315,22 @@ export function expandKeywords(text: string, fnStart = 1): string {
|
|||
// --- TABLE multi-riga ---
|
||||
// Header: //TABLE Col1, Col2, Col3
|
||||
// Righe: val1, val2, val3 (una per riga, virgola come separatore)
|
||||
// Fine: //TABLE (tag di chiusura) oppure riga vuota / senza virgola
|
||||
// Fine: //TABLE (tag di chiusura) oppure riga vuota
|
||||
case 'TABLE': {
|
||||
const headers = content.split(',').map(h => h.trim());
|
||||
const rows: string[][] = [];
|
||||
i++;
|
||||
while (i < lines.length) {
|
||||
const rowLine = lines[i].trim();
|
||||
// Tag di chiusura: "<TABLE>" senza contenuto
|
||||
if (/^\/\/TABLE\s*$/i.test(rowLine)) { i++; break; }
|
||||
// Fine implicita: riga vuota o riga senza virgola
|
||||
if (!rowLine || !rowLine.includes(',')) break;
|
||||
// Chiusura esplicita: //TABLE (anche con rumore OCR dopo, es. //TABLE. //TABLE:)
|
||||
// \b garantisce che "TABLE" sia seguito da fine parola, non da altre lettere
|
||||
if (/^\/\/TABLE\b/i.test(rowLine)) { i++; break; }
|
||||
// Qualsiasi altra keyword chiude implicitamente senza consumarla
|
||||
if (/^\/\//.test(rowLine)) break;
|
||||
// Fine implicita: riga vuota
|
||||
if (!rowLine) break;
|
||||
// Riga con o senza virgola: trattata comunque come riga dati
|
||||
// (evita interruzione prematura per righe OCR con cella singola)
|
||||
rows.push(rowLine.split(',').map(c => c.trim()));
|
||||
i++;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue