mirror of
https://github.com/gabriele-cusato/HandTranscriptMd.git
synced 2026-07-22 14:30:25 +00:00
eliminata la cartella C, era un bug
This commit is contained in:
parent
0ae438bc02
commit
426a96394f
6 changed files with 568 additions and 0 deletions
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"id": "handwriting-to-markdown",
|
||||
"name": "Handwriting to Markdown",
|
||||
"version": "0.1.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Inline handwriting canvas with conversion to structured markdown",
|
||||
"author": "GabrieleC",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
/* ========================================
|
||||
Handwriting to Markdown — Plugin Styles
|
||||
Prefisso hwm_ per evitare conflitti
|
||||
======================================== */
|
||||
|
||||
/* --- Container principale dell'embed --- */
|
||||
.hwm_container {
|
||||
position: relative;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
margin: 8px 0;
|
||||
/* Sfondo SEMPRE bianco (anche in dark mode) */
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Toolbar in alto a destra --- */
|
||||
.hwm_toolbar {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 6px;
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0; /* spacing gestito via margin-right sui bottoni, così i bottoni
|
||||
nascosti (max-width:0, margin:0) non creano spazi vuoti */
|
||||
padding: 3px 6px;
|
||||
border-radius: 6px;
|
||||
background: rgba(240, 240, 240, 0.95);
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
|
||||
opacity: 1;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
|
||||
/* --- Bottoni toolbar --- */
|
||||
.hwm_btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
padding: 0;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
background: transparent;
|
||||
color: #666;
|
||||
cursor: pointer;
|
||||
line-height: 0;
|
||||
/* Spacing via margin-right invece di gap, così i bottoni nascosti
|
||||
(margin:0) non lasciano spazi vuoti nella toolbar compatta */
|
||||
margin-right: 4px;
|
||||
/* Animazione espansione/compressione toolbar */
|
||||
overflow: hidden;
|
||||
max-width: 40px;
|
||||
flex-shrink: 0;
|
||||
transition: max-width 0.2s ease, opacity 0.2s ease,
|
||||
margin 0.2s ease, padding 0.2s ease;
|
||||
}
|
||||
/* Icone SVG inline dentro i bottoni */
|
||||
.hwm_btn svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.hwm_btn:hover {
|
||||
background: #e0e0e0;
|
||||
color: #333;
|
||||
}
|
||||
/* Bottone attivo (tool selezionato) */
|
||||
.hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Bottone salva (evidenziato) --- */
|
||||
.hwm_save-btn {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.hwm_save-btn:hover {
|
||||
background: var(--interactive-accent);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Bottone elimina (X rossa su hover) --- */
|
||||
.hwm_delete-btn:hover {
|
||||
background: #dc2626;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Selettore colori --- */
|
||||
.hwm_colors {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 3px;
|
||||
margin: 0 4px;
|
||||
}
|
||||
/* I pallini colore sono <div> (non <button>) per evitare che Obsidian Mobile
|
||||
sovrascriva width/height con i propri stili globali sui button.
|
||||
Le dimensioni (22px) sono forzate anche via style.setProperty inline in embed.ts */
|
||||
.hwm_color-btn {
|
||||
display: inline-block;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
border: 2px solid transparent;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.hwm_color-btn.hwm_active {
|
||||
border-color: var(--interactive-accent);
|
||||
}
|
||||
.hwm_color-btn:hover {
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
/* --- Area canvas (editing) --- */
|
||||
.hwm_canvas-wrap {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.hwm_canvas {
|
||||
display: block;
|
||||
width: 100%;
|
||||
cursor: crosshair;
|
||||
/* Sfondo bianco fisso */
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Handle di resize in basso --- */
|
||||
.hwm_resize-handle {
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: ns-resize;
|
||||
background: #f5f5f5;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
color: #999;
|
||||
font-size: 14px;
|
||||
user-select: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.hwm_resize-handle:hover {
|
||||
background: #ebebeb;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* --- Placeholder per canvas vuoto --- */
|
||||
.hwm_placeholder {
|
||||
text-align: center;
|
||||
color: #999;
|
||||
padding: 40px 0;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* --- Errore parsing --- */
|
||||
.hwm_error {
|
||||
color: var(--text-error);
|
||||
padding: 8px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* --- Separatore visivo nella toolbar --- */
|
||||
.hwm_separator {
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: #d0d0d0;
|
||||
margin: 0 6px 0 2px; /* destra più ampia per bilanciare visivamente */
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
transition: max-width 0.2s ease, opacity 0.2s ease,
|
||||
margin 0.2s ease, padding 0.2s ease;
|
||||
}
|
||||
|
||||
/* --- Pallini colore: transizione per animazione toolbar --- */
|
||||
.hwm_color-btn {
|
||||
transition: max-width 0.2s ease, opacity 0.2s ease,
|
||||
margin 0.2s ease, padding 0.2s ease;
|
||||
}
|
||||
|
||||
/* --- Toolbar compatta (mobile) ---
|
||||
Bottoni nascosti: collassati a larghezza 0 con fade-out.
|
||||
La transizione su .hwm_btn e .hwm_separator produce l'animazione
|
||||
quando la classe viene aggiunta/rimossa via JS. */
|
||||
.hwm_toolbar--compact .hwm_pen-btn,
|
||||
.hwm_toolbar--compact .hwm_eraser-btn,
|
||||
.hwm_toolbar--compact .hwm_clear-btn,
|
||||
.hwm_toolbar--compact .hwm_save-btn,
|
||||
.hwm_toolbar--compact .hwm_color-btn:not(.hwm_active),
|
||||
.hwm_toolbar--compact .hwm_separator {
|
||||
max-width: 0 !important;
|
||||
opacity: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
pointer-events: none;
|
||||
}
|
||||
/* Riduce il margine attorno al pallino colore rimasto e azzera il gap
|
||||
tra i pallini (gli inattivi sono collassati a width:0 ma il gap persiste) */
|
||||
.hwm_toolbar--compact .hwm_colors {
|
||||
margin: 0 2px;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
/* --- Tema scuro per la toolbar ---
|
||||
Applicato via classe hwm_toolbar--dark quando bgMode === 'dark' */
|
||||
.hwm_toolbar--dark {
|
||||
background: rgba(40, 40, 40, 0.97) !important;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4) !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_btn {
|
||||
color: #bbb !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_btn:hover {
|
||||
background: rgba(255, 255, 255, 0.12) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_separator {
|
||||
background: #555 !important;
|
||||
}
|
||||
|
||||
/* --- Mobile: bottoni grandi e visibili ---
|
||||
Forza sfondo chiaro + colore scuro per le icone SVG,
|
||||
indipendentemente dal tema di Obsidian Mobile */
|
||||
.hwm_mobile .hwm_toolbar {
|
||||
gap: 0;
|
||||
padding: 5px 8px;
|
||||
}
|
||||
.hwm_mobile .hwm_toolbar .hwm_btn {
|
||||
width: 36px !important;
|
||||
height: 36px !important;
|
||||
margin-right: 6px !important; /* spacing via margin, non gap */
|
||||
background: rgba(245, 245, 245, 0.98) !important;
|
||||
border: 1px solid rgba(0, 0, 0, 0.18) !important;
|
||||
border-radius: 7px !important;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18) !important;
|
||||
color: #222 !important;
|
||||
}
|
||||
.hwm_mobile .hwm_toolbar .hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent) !important;
|
||||
border-color: var(--interactive-accent) !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
/* --- Tema scuro su mobile: sovrascrive i bianchi !important del mobile --- */
|
||||
.hwm_mobile .hwm_toolbar--dark .hwm_btn {
|
||||
background: rgba(55, 55, 55, 0.98) !important;
|
||||
border-color: rgba(255, 255, 255, 0.15) !important;
|
||||
color: #ddd !important;
|
||||
}
|
||||
.hwm_mobile .hwm_toolbar--dark .hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent) !important;
|
||||
border-color: var(--interactive-accent) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"id": "handwriting-to-markdown",
|
||||
"name": "Handwriting to Markdown",
|
||||
"version": "0.1.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Inline handwriting canvas with conversion to structured markdown",
|
||||
"author": "GabrieleC",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
/* ========================================
|
||||
Handwriting to Markdown — Plugin Styles
|
||||
Prefisso hwm_ per evitare conflitti
|
||||
======================================== */
|
||||
|
||||
/* --- Container principale dell'embed --- */
|
||||
.hwm_container {
|
||||
position: relative;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
margin: 8px 0;
|
||||
/* Sfondo SEMPRE bianco (anche in dark mode) */
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Toolbar in alto a destra --- */
|
||||
.hwm_toolbar {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 6px;
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0; /* spacing gestito via margin-right sui bottoni, così i bottoni
|
||||
nascosti (max-width:0, margin:0) non creano spazi vuoti */
|
||||
padding: 3px 6px;
|
||||
border-radius: 6px;
|
||||
background: rgba(240, 240, 240, 0.95);
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
|
||||
opacity: 1;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
|
||||
/* --- Bottoni toolbar --- */
|
||||
.hwm_btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
padding: 0;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
background: transparent;
|
||||
color: #666;
|
||||
cursor: pointer;
|
||||
line-height: 0;
|
||||
/* Spacing via margin-right invece di gap, così i bottoni nascosti
|
||||
(margin:0) non lasciano spazi vuoti nella toolbar compatta */
|
||||
margin-right: 4px;
|
||||
/* Animazione espansione/compressione toolbar */
|
||||
overflow: hidden;
|
||||
max-width: 40px;
|
||||
flex-shrink: 0;
|
||||
transition: max-width 0.2s ease, opacity 0.2s ease,
|
||||
margin 0.2s ease, padding 0.2s ease;
|
||||
}
|
||||
/* Icone SVG inline dentro i bottoni */
|
||||
.hwm_btn svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.hwm_btn:hover {
|
||||
background: #e0e0e0;
|
||||
color: #333;
|
||||
}
|
||||
/* Bottone attivo (tool selezionato) */
|
||||
.hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Bottone salva (evidenziato) --- */
|
||||
.hwm_save-btn {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.hwm_save-btn:hover {
|
||||
background: var(--interactive-accent);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Bottone elimina (X rossa su hover) --- */
|
||||
.hwm_delete-btn:hover {
|
||||
background: #dc2626;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Selettore colori --- */
|
||||
.hwm_colors {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 3px;
|
||||
margin: 0 4px;
|
||||
}
|
||||
/* I pallini colore sono <div> (non <button>) per evitare che Obsidian Mobile
|
||||
sovrascriva width/height con i propri stili globali sui button.
|
||||
Le dimensioni (22px) sono forzate anche via style.setProperty inline in embed.ts */
|
||||
.hwm_color-btn {
|
||||
display: inline-block;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
border: 2px solid transparent;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.hwm_color-btn.hwm_active {
|
||||
border-color: var(--interactive-accent);
|
||||
}
|
||||
.hwm_color-btn:hover {
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
/* --- Area canvas (editing) --- */
|
||||
.hwm_canvas-wrap {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.hwm_canvas {
|
||||
display: block;
|
||||
width: 100%;
|
||||
cursor: crosshair;
|
||||
/* Sfondo bianco fisso */
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Handle di resize in basso --- */
|
||||
.hwm_resize-handle {
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: ns-resize;
|
||||
background: #f5f5f5;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
color: #999;
|
||||
font-size: 14px;
|
||||
user-select: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.hwm_resize-handle:hover {
|
||||
background: #ebebeb;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* --- Placeholder per canvas vuoto --- */
|
||||
.hwm_placeholder {
|
||||
text-align: center;
|
||||
color: #999;
|
||||
padding: 40px 0;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* --- Errore parsing --- */
|
||||
.hwm_error {
|
||||
color: var(--text-error);
|
||||
padding: 8px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* --- Separatore visivo nella toolbar --- */
|
||||
.hwm_separator {
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: #d0d0d0;
|
||||
margin: 0 6px 0 2px; /* destra più ampia per bilanciare visivamente */
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
transition: max-width 0.2s ease, opacity 0.2s ease,
|
||||
margin 0.2s ease, padding 0.2s ease;
|
||||
}
|
||||
|
||||
/* --- Pallini colore: transizione per animazione toolbar --- */
|
||||
.hwm_color-btn {
|
||||
transition: max-width 0.2s ease, opacity 0.2s ease,
|
||||
margin 0.2s ease, padding 0.2s ease;
|
||||
}
|
||||
|
||||
/* --- Toolbar compatta (mobile) ---
|
||||
Bottoni nascosti: collassati a larghezza 0 con fade-out.
|
||||
La transizione su .hwm_btn e .hwm_separator produce l'animazione
|
||||
quando la classe viene aggiunta/rimossa via JS. */
|
||||
.hwm_toolbar--compact .hwm_pen-btn,
|
||||
.hwm_toolbar--compact .hwm_eraser-btn,
|
||||
.hwm_toolbar--compact .hwm_clear-btn,
|
||||
.hwm_toolbar--compact .hwm_save-btn,
|
||||
.hwm_toolbar--compact .hwm_color-btn:not(.hwm_active),
|
||||
.hwm_toolbar--compact .hwm_separator {
|
||||
max-width: 0 !important;
|
||||
opacity: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
pointer-events: none;
|
||||
}
|
||||
/* Riduce il margine attorno al pallino colore rimasto e azzera il gap
|
||||
tra i pallini (gli inattivi sono collassati a width:0 ma il gap persiste) */
|
||||
.hwm_toolbar--compact .hwm_colors {
|
||||
margin: 0 2px;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
/* --- Tema scuro per la toolbar ---
|
||||
Applicato via classe hwm_toolbar--dark quando bgMode === 'dark' */
|
||||
.hwm_toolbar--dark {
|
||||
background: rgba(40, 40, 40, 0.97) !important;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4) !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_btn {
|
||||
color: #bbb !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_btn:hover {
|
||||
background: rgba(255, 255, 255, 0.12) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.hwm_toolbar--dark .hwm_separator {
|
||||
background: #555 !important;
|
||||
}
|
||||
|
||||
/* --- Mobile: bottoni grandi e visibili ---
|
||||
Forza sfondo chiaro + colore scuro per le icone SVG,
|
||||
indipendentemente dal tema di Obsidian Mobile */
|
||||
.hwm_mobile .hwm_toolbar {
|
||||
gap: 0;
|
||||
padding: 5px 8px;
|
||||
}
|
||||
.hwm_mobile .hwm_toolbar .hwm_btn {
|
||||
width: 36px !important;
|
||||
height: 36px !important;
|
||||
margin-right: 6px !important; /* spacing via margin, non gap */
|
||||
background: rgba(245, 245, 245, 0.98) !important;
|
||||
border: 1px solid rgba(0, 0, 0, 0.18) !important;
|
||||
border-radius: 7px !important;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18) !important;
|
||||
color: #222 !important;
|
||||
}
|
||||
.hwm_mobile .hwm_toolbar .hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent) !important;
|
||||
border-color: var(--interactive-accent) !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
/* --- Tema scuro su mobile: sovrascrive i bianchi !important del mobile --- */
|
||||
.hwm_mobile .hwm_toolbar--dark .hwm_btn {
|
||||
background: rgba(55, 55, 55, 0.98) !important;
|
||||
border-color: rgba(255, 255, 255, 0.15) !important;
|
||||
color: #ddd !important;
|
||||
}
|
||||
.hwm_mobile .hwm_toolbar--dark .hwm_btn.hwm_active {
|
||||
background: var(--interactive-accent) !important;
|
||||
border-color: var(--interactive-accent) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
Loading…
Reference in a new issue