Strumenti per sviluppatori · HTML WYSIWYG editor
Rich Text negli Appunti: come la formattazione viaggia tra le applicazioni
· Sfondo
html appunti contenutomodificabile
Spiega i molteplici formati che una copia RTF inserisce negli appunti, come ogni applicazione ne sceglie uno e perché il markup incollato non è mai esattamente quello che è stato copiato.
Stessa copia, tre diversi incollamenti: si apre con il contenuto incollato in un browser, un terminale e un client di posta
Un paragrafo copiato può arrivare come contenuto formattato nell'editor del browser e come carattere non formattato in un terminale perché le destinazioni richiedono rappresentazioni diverse. Il gestore incolla di ToolAcre richiede negli appunti HTML e testo normale, quindi segue un ramo fisso anziché fidarsi dell'inserimento predefinito del browser.
Se HTML è presente, il ricco frammento originale non entra mai direttamente in superficie. Passa prima attraverso il disinfettante. Se HTML è assente, viene inserito il testo normale. Questa regola locale spiega il comportamento di questo editor senza affermare come ogni client di posta, sistema operativo o suite per ufficio dia priorità ai dati degli appunti.
Questo gestore incolla legge text/html e text/plain; le versioni più ampie degli appunti sono fuori dalle prove
Gli appunti possono contenere più rappresentazioni di una selezione. Questa implementazione riguarda esplicitamente `text/html` e `text/plain`. Non enumera RTF, immagini, riferimenti a file o formati specifici dell'applicazione, quindi questi non dovrebbero essere impliciti come input supportati.
Le due stringhe possono codificare informazioni diverse. Il testo normale contiene caratteri e interruzioni di riga, mentre HTML può contenere paragrafi, elenchi, enfasi e collegamenti oltre ad attributi indesiderati. ToolAcre favorisce la struttura quando disponibile ma la restringe attraverso l'elemento, l'attributo e la politica URL prima dell'inserimento.
Chi scrive il sapore HTML — spiega che l'applicazione sorgente lo genera, motivo per cui gli incollamenti di Word e Google Docs sembrano così diversi
L'applicazione di origine crea la rappresentazione HTML, motivo per cui due copie visivamente simili possono fornire wrapper e presentazioni diversi. ToolAcre non identifica il produttore. Si applica una regola generica: i wrapper e gli attributi non supportati vengono rimossi indipendentemente dall'origine.
Ciò impedisce che cataloghi senza fonti interne di Word o Google Docs diventino dichiarazioni di prodotto. L'elenco di rimozione dice allo scrittore esattamente cosa questo parser ha rifiutato. Se la fedeltà a un'applicazione sorgente è importante, acquisisci un dispositivo reale dall'ambiente supportato e testalo anziché fare affidamento su un esempio di articolo generico.
Modalità di scelta della destinazione: copre l'ordine di preferenza e le scorciatoie da incollare come testo normale
La destinazione sceglie per codice. Qui vince HTML non vuoto; altrimenti viene utilizzato il testo semplice. Non è disponibile alcuna opzione nella barra degli strumenti per "incolla come testo normale" e le origini del repository non definiscono il comportamento delle scorciatoie da tastiera. I browser e i sistemi operativi possono offrire tali gesti in modo indipendente.
La gestione del rilascio rispecchia la stessa idea con DataTransfer: previene il valore predefinito, legge HTML e valori semplici, disinfetta HTML prima di `insertHTML` o invia caratteri semplici tramite `insertText`. A differenza di Incolla, il percorso di rilascio non visualizza lo stesso conteggio dettagliato delle rimozioni, sebbene l'aggiornamento aggiorni comunque il documento visibile.
I metadati dei frammenti della piattaforma non vengono analizzati in modo esplicito da questa implementazione
Alcune piattaforme racchiudono i frammenti degli appunti HTML in metadati o marcatori, ma ToolAcre non contiene un parser esplicito per un formato di piattaforma denominato. Il suo tokenizzatore vede la stringa restituita da `getData("text/html")` ed elabora il markup riconosciuto. Questo articolo quindi omette la sintassi dell'intestazione, gli offset e le garanzie specifiche del sistema operativo.
Se i wrapper vengono visualizzati come commenti, i commenti vengono rimossi. Se i metadati arrivano al di fuori del HTML riconosciuto, è necessario testare il comportamento. Una possibilità qualitativa non è sufficiente per rivendicare il sostegno o il rifiuto di un protocollo di piattaforma che il codice non nomina mai.
Esempio realizzato: confronta un carico utile di appunti ricchi con un carico utile di soli elementi semplici
Copia un paragrafo non sensibile contenente testo forte, un breve elenco e un collegamento https. Una pasta ricca può mantenere le strutture consentite, rimuovere lo stile dell'origine e aggiungere rel al collegamento. Ispeziona la fonte e l'avviso di rimozione. Quindi incolla una rappresentazione solo semplice attraverso un ambiente che non fornisce HTML.
Il risultato normale contiene i caratteri inseriti nella selezione; qualsiasi struttura di blocco viene decisa dall'host di modifica del browser anziché ripristinata dall'originale HTML. Confronta le parole e i confini delle linee separatamente dagli elementi. L'esercizio dimostra la traduzione tra rappresentazioni, non la copia byte per byte.
Ciò che questo non copre: API degli appunti, immagini, scorciatoie della piattaforma o matrici di autorizzazione
Questo articolo non tratta la programmazione di navigator.clipboard, le richieste di autorizzazione, le immagini degli appunti, i file, RTF, i collegamenti mobili o una matrice di preferenze multipiattaforma. Inoltre, non afferma che il rich paste intercettato renda HTML arbitrariamente ostile sicuro da pubblicare.
Il disinfettante di ToolAcre è limitato e riconosce i differenziali del parser. La sua sandbox blocca l'esecuzione nell'anteprima locale, ma la copia HTML lascia quell'ambiente. Un server ricevente necessita di un disinfettante e di una policy di output adeguati basati su parser, mentre gli utenti dovrebbero evitare di incollare segreti in qualsiasi pagina non revisionata.
Conclusione: l'incolla è una traduzione, non una copia: riassume il modello e come l'editor HTML WYSIWYG di ToolAcre ti consente di verificare cosa ha prodotto la traduzione
Una pasta ricca è una traduzione: la sorgente scrive rappresentazioni, la destinazione ne sceglie una e ToolAcre filtra la HTML scelta prima dell'inserimento. Comprendere questa sequenza spiega perché la formattazione può scomparire senza considerare gli appunti come danneggiati.
Utilizzare strutture rappresentative, ispezionare la fonte risultante e preservare il contenuto originale quando la pulizia potrebbe rimuovere il significato. La pasta semplice è utile per ripristinare la presentazione, mentre la pasta ricca può mantenere la struttura. Nessuno dei due percorsi solleva la destinazione da controlli igienico-sanitari, test di compatibilità o revisione editoriale.