Esiste una buona libreria o controllo Javascript Markdown? [chiuso]


89

Voglio creare un sito in cui l'utente possa inserire testo e formattarlo in Markdown. Il motivo per cui vorrei una soluzione Javascript è perché voglio visualizzare un'anteprima dal vivo, proprio come su StackOverflow.

Tuttavia, il mio sito non è destinato agli sviluppatori, quindi l'ideale sarebbe un controllo dell'editor.

Ho capito che su StackOverflow viene utilizzato l'editor WMD.

Una rapida ricerca su Google mostra anche la libreria Showdown, che penso sia effettivamente utilizzata da WMD.

Ci sono altre opzioni? WMD / Showdown sono già ottimi strumenti? Quali sono state le tue esperienze con le diverse opzioni?

Risposte:


33

Se non sei contrario all'utilizzo di Ajax per generare l'anteprima dal vivo, un'altra opzione è markItUp! . markItUp! è un editor di markup universale e molto flessibile. Fornisce un modo semplice per creare un editor di markup, ma a differenza di WMD, non fornisce una propria anteprima live.

Ho usato markItUp! Insieme a un semplice JSP (usando MarkdownJ ) per uno dei miei progetti open-source (un plug-in Markdown per Roller ). Se stai utilizzando un'altra tecnologia lato server, sostituisci quel semplice JSP come appropriato.

In realtà ho iniziato a usarlo prima di imbattermi in WMD. Sono d'accordo, WMD è fantastico, ma è stato appena reso open source ed è, in questa fase, più difficile personalizzarne il comportamento.


MarkItUp! non gestisce la selezione alternata e adesiva. Questo è il mio editor di testo Markdown open source basato su JavaScript. Supporta scorciatoie da tastiera, finestre di dialogo personalizzate, drop personalizzati e supporta anche una selezione di testo intelligente in modo ordinato per incoraggiare gli utenti a scrivere la sintassi Markdown in un buon formato: github.com/tovic/markdown-text-editor
Taufik Nurrohman

65

Siamo stati abbastanza soddisfatti delle WMD. Tuttavia, ci sono alcuni bug fastidiosi. Niente di grave, ma lo farei amare se John Fraser (l'autore) ha reso il codice open source in modo che possiamo risolvere alcuni di loro. Ha promesso di farlo, ma altri progetti di vita reale si stanno intromettendo.

Seguo John ogni settimana. Pubblicherò sul blog una volta che la fonte WMD sarà finalmente disponibile.Non riesco a contattare John Fraser da più di un anno.

Abbiamo reso open source sia la libreria JavaScript Markdown

http://code.google.com/p/pagedown/

e la libreria C # Markdown lato server

http://code.google.com/p/markdownsharp/


Grazie per la risposta Jeff. Non mi ero nemmeno reso conto che le armi di distruzione di massa non erano open source ... Terrò gli occhi aperti.
webmat

2
Cosa hai fatto per la falla nella sicurezza? Ad esempio: <div onmouseover = "alert ('hi');"> hi </div> Quanto sopra funziona nella demo WMD!
andrewrk

1
@ superjoe30 Quella roba viene filtrata sul server.
Epochwolf

@ superjoe30: Vedi meta.stackexchange.com/questions/95821/… - lo stesso vale per la versione JavaScript
balpha

1
@DisgruntledGoat guardando stackexchange.github.io puoi vedere che è nell'elenco e l'ultimo commit è stato 6 mesi fa (già 2015).
Loïc Faure-Lacroix

12

Consiglierei marcato , che è leggero, efficiente, facile da usare e supporta anche GitHub Flavored Markdown (GFM). Può essere utilizzato sia sul lato server (nodejs) che su quello client (browser).


contrassegnato è ancora in fase di sviluppo e la versione ridotta a icona è grande solo 23 KB.
Peter T.

7

Per quanto ne so, non c'è davvero nessun altro editor basato su browser per Markdown, almeno nessuno così esteso come l'editor WMD.

Showdown è un convertitore Markdown in JS, che costituisce la base per l'anteprima HTML di WMD. Sono entrambi realizzati da http://attacklab.net/ .

E per quanto ne so non ci sono state grosse lamentele su entrambi (almeno non sulla mailing list di Markdown). Quindi fallo.



4

Strapdown.js, che è stato recentemente rilasciato , "semplifica in modo imbarazzante la creazione di eleganti documenti Markdown. Non è richiesta alcuna compilazione lato server".



3

La domanda è ancora più antica ora, ma anche più rilevante poiché gran parte del codice menzionato è obsoleto da diversi anni.

Tuttavia, ne ho trovati alcuni che sembrano ancora attuali:

Jquery-Markedit - Questo è stato biforcato da wmd-edit un po 'di tempo fa e refactoring per utilizzare jQuery. Sembra buono a prima vista.

EpicEditor - è anche ancora mantenuto, ha un parser flessibile e, come puoi vedere di seguito, l'autore è altamente reattivo (vedi sotto). Sembra avere anche una buona documentazione. Purtroppo non funziona con IE9.

MarkdownDeep è una terza opzione ancora attuale. Il punto interessante di questo è il supporto per Markdown Extra. Ha una dipendenza da JQuery (in realtà puoi implementarlo anche senza JQuery). Basato sulla versione .NET, quindi la documentazione è più allineata a quella rispetto alla versione JS. Funziona anche con IE9. È molto facile da usare (con JQuery) e molto semplice. Per quanto posso vedere, nessuno sviluppo significativo sta accadendo con questo.

js-markdown-extra è un port abbastanza accurato della libreria PHP ed è ancora in manutenzione. Supporta ovviamente Markdown Extra.


1
Le anteprime live funzionano bene con il mio editor :) apri a schermo intero come esempio o semplicemente esegui preview()su keydown o timeout. È costruito per qualsiasi tipo di personalizzazione.
Oscar Godson

1
Quindi, sotto l'editor è come funziona ora. Dopo aver fatto clic su anteprima, mostra l'anteprima nascosta che viene aggiornata con ciò che hai scritto. Fullscreen lo fa (più o meno) durante la digitazione. Per creare il tuo visualizzatore di anteprima potresti fare qualcosa del genere: jsbin.com/otuyub/edit#javascript,html
Oscar Godson

1
Intercettare? Puoi fare: editor.on('save', function(file) { console.log(file.content) })se è questo che intendi. Ciò sputerà il contenuto del file ogni volta che il file viene salvato.
Oscar Godson

1
Inoltre, potresti voler usare on('update')invece di salvare. Il salvataggio si attiverà molto se hai attivato il salvataggio automatico. L'aggiornamento si attiverà solo quando qualcosa cambia. epiceditor.com/#events
Oscar Godson

1
Cordiali saluti a chiunque legga questo: github.com/OscarGodson/EpicEditor/issues/137 - il problema è che stava cercando di essere eseguito localmente e IE9 ha restrizioni di sicurezza contro l'utilizzo di localStorage localmente tramite file: \\\
Oscar Godson

2

La domanda è antica ma si spera che questo possa aiutare qualcuno. Di recente ho pubblicato una versione funzionante del mio editor di markdown Javascript, markdown uedit . Puoi trovare il codice sorgente qui . Funziona sulla maggior parte dei browser (incluso IE6 +) e non dipende da alcuna libreria JS esterna.


2

Dopo aver provato con diversi plugin per risolvere le mie esigenze di offrire un seudo-WYSIWYG MarkDown ho finito di implementare il mio:

Forse non è potente come tutte le soluzioni qui commentate ma penso che nessuna sia così semplice e facile da integrare e personalizzare .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.