Domanda

Mi piace lo Stack Overflow commento interfaccia utente molto e sto cercando in attuazione della stessa cosa sul mio sito web. Ho guardato il codice e sembra che lo strumento principale è WMD , con il JQuery TextArea Resizer a giocare un ruolo di supporto.

WMD converte in HTML Markdown sul lato client. Questo è abbastanza bello perché aiuta con l'anteprima, ma mi imbatto in una sfida per l'invio che al server. Se c'è un errore di convalida (dire che l'utente ha immesso un indirizzo e-mail valido su qualche altra parte del modulo dei commenti, o lui non è entrato il suo nome forse), quindi il server risponde si mostra di nuovo il modulo con un messaggio di errore e il i campi del modulo precompilato. Solo ora il testo del commento è HTML, non Markdown, perché il server mai nemmeno visto il Markdown. Ma vorrei che fosse Markdown dato che questo è ciò che l'utente stava entrando.

Tutte le idee qui?

Ho considerato varie idee:

  • HTML-to-Markdown trasformazione . Non che entusiasta di questa idea. Sembra hokey di trasformare da Markdown in HTML di nuovo a Markdown di nuovo, e come utente Trovo sempre irritante quando il software riformatta il mio testo / codice.
  • validazione lato client (per aumentare la convalida sul lato server, che avrei ovviamente mantenere). Sembra una direzione ragionevole anche se attualmente sto usando reCAPTCHA sul mio commento forme, il che significa che ho bisogno di inviare almeno la parte reCAPTCHA a un server.
  • Perdere WMD e utilizzare MarkdownJ per trasformare il Markdown in HTML sul server. Avrei bisogno di cercare qualche altro meccanismo per realizzare la funzione di anteprima, che voglio mantenere.

Idealmente ci sarebbe un modo per arrivare alla versione Markdown del testo e sostengono che al server, oltre al codice HTML, ma non sono abbastanza di un ragazzo JavaScript per sapere se questa è una possibilità reale.

Tutti i suggerimenti apprezzato.

È stato utile?

Soluzione

Vedere questa domanda: Convertire HTML di nuovo a Markdown per la modifica in WMD (yay per la casella "correlate" a nav a destra!).

Altri suggerimenti

Vorrei inviare i dati come Markdown e poi lasciare che il server di convertirlo in HTML quando le convalide sono passati. ADM ha un'opzione per specificare il formato dei dati invierà al server. Basta aggiungere

wmd_options = {
        //Markdown or HTML
        output: "Markdown"
    };

Prima della chiamata di WMD

Ho solo guardato WMD ad un livello superficiale, ma la presentazione della textarea al server sembra piuttosto semplice - infatti, quasi non vedo come si potrebbe evitare se textarea fa parte del modulo. Da quanto ho capito, il tuo textarea contiene markup, e WMD converte in HTML per la visualizzazione in un'altra parte della pagina. È sufficiente includere la textarea in forma che viene presentato e si dovrebbe vedere sul lato server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top