PasteMD
Incolla in Word, WPS ed Excel i testi di ChatGPT, già formattati bene
Cosa fa
Uno strumento che con un clic incolla in Word, WPS ed Excel il testo in Markdown e le risposte delle AI, con titoli, elenchi e tabelle formattati correttamente.
Come guadagna
Progetto open source su GitHub con oltre 5.000 stelle, che non dichiara incassi. Ha licenza AGPL: puoi partire dal suo codice, ma se offri la tua versione online devi pubblicare anche il tuo codice modificato. Idee nostre per guadagnare: versione Pro a pagamento una tantum, molto apprezzata da chi lavora negli uffici.
Rendilo tuo
- Per gli uffici italiani: modelli aziendali con logo e carattere della ditta.
- Un piccolo fastidio quotidiano di milioni di persone: idea perfetta.
Le frasi da scrivere all'AI
1. Base del sito e grafica
Crea un'app web in italiano chiamata "Incolla Bene": incolla in Word, Google Docs o nelle email il testo copiato da ChatGPT o Claude (scritto in Markdown) con titoli, elenchi, grassetti e tabelle già formattati, invece di asterischi e cancelletti. Usa React, Vite, TypeScript e Tailwind CSS.
Pagine da creare:
1. Pagina principale: incolla il testo a sinistra, vedi l'anteprima formattata a destra, pulsante "Copia formattato"
2. Estensione del browser: pulsante "Copia per Word" sotto le risposte delle chat AI
3. Impostazioni: carattere, dimensione, stile delle tabelle
4. Pagina Pro
Stile: semplice da ufficio: sfondo bianco, blu Word #2B579A, carattere "Inter" per l'interfaccia e "Calibri"/"Aptos" nell'anteprima, due colonne affiancate. Nessuna immagine generica di stock.
Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.
2. Database, account e sicurezza
Collega il progetto a Supabase e attiva la registrazione con email e password.
Crea queste tabelle:
- nessun testo viene salvato: la conversione avviene nel browser
- "profili": piano
Regole di sicurezza obbligatorie:
- i testi non lasciano il computer
- il piano non si modifica dal browser
Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.
3. Copiare come testo formattato
Il testo in Markdown si trasforma in HTML (titoli, elenchi, grassetto, corsivo, tabelle, codice) con la libreria marked, si ripulisce con DOMPurify, e si applicano stili in linea compatibili con Word (caratteri, bordi delle tabelle, spaziature).
Il pulsante "Copia formattato" mette negli appunti due versioni insieme: HTML per Word, Docs e le email, e testo semplice per i programmi che non accettano formattazione (codice nei Dettagli tecnici). Incollando in Word, appare già impaginato.
Le formule matematiche ($...$) si convertono in immagini o testo leggibile, a scelta.
4. Estensione e Pro
Estensione per Chrome ed Edge che aggiunge il pulsante "Copia per Word" sotto ogni risposta di ChatGPT, Claude e Gemini, senza leggere altro della pagina.
Pro: stili personalizzati (carattere e colori aziendali), tabelle con lo stile scelto, conversione diretta in file .docx scaricabile, e nessun limite di lunghezza.
5. Pagamenti con Stripe
Aggiungi un pagamento singolo di 4,99 € una volta sola. Il pagamento sblocca stili personalizzati, download in .docx e testi senza limiti di lunghezza.
A pagamento riuscito il webhook imposta "piano" a "pro" nella tabella "profili", sulla riga dell'utente indicata in client_reference_id.
Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.
6. Controlli specifici di questo progetto
Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Word: incolla in Word un testo con titoli, elenco numerato annidato, tabella e codice: tutto deve apparire formattato, senza asterischi o cancelletti.
Correggi quello che non va e scrivimi cosa hai cambiato.
Dettagli tecnici
Copiare negli appunti in due formati
Converte il Markdown in HTML con stili adatti a Word e lo copia negli appunti sia come HTML sia come testo semplice: ogni programma sceglie il formato che capisce.
import { marked } from "marked";
import DOMPurify from "dompurify";
const STILI: Record<string, string> = {
h1: "font-size:20pt;font-weight:bold;margin:12pt 0 6pt",
h2: "font-size:16pt;font-weight:bold;margin:10pt 0 4pt",
p: "margin:0 0 8pt;line-height:1.4",
table: "border-collapse:collapse;margin:6pt 0",
th: "border:1px solid #999;padding:4pt 8pt;background:#F2F2F2;font-weight:bold",
td: "border:1px solid #999;padding:4pt 8pt",
code: "font-family:Consolas,monospace;background:#F5F5F5",
};
export function markdownInHtml(md: string, carattere = "Calibri"): string {
const html = DOMPurify.sanitize(marked.parse(md, { async: false }) as string);
const contenitore = document.createElement("div");
contenitore.innerHTML = html;
for (const [tag, stile] of Object.entries(STILI)) {
contenitore.querySelectorAll<HTMLElement>(tag).forEach((el) => el.setAttribute("style", stile));
}
return '<div style="font-family:' + carattere + ',sans-serif;font-size:11pt">' + contenitore.innerHTML + "</div>";
}
export async function copiaFormattato(md: string) {
const html = markdownInHtml(md);
const semplice = md.replace(/[*_#`>]/g, ""); // versione senza simboli Markdown
await navigator.clipboard.write([
new ClipboardItem({
"text/html": new Blob([html], { type: "text/html" }),
"text/plain": new Blob([semplice], { type: "text/plain" }),
}),
]);
}
Pezzi comuni a tutti i progetti
Glossario
- Markdown
- Un modo di scrivere testo formattato con simboli semplici: # per i titoli, ** per il grassetto. Le AI rispondono così.
- Appunti (clipboard)
- La memoria del computer dove finisce ciò che copi: può contenere lo stesso testo in più formati.