Domanda

Perché ho bisogno di un Ribasso con un editor di modifica frontale come armi di distruzione di massa?Cosa fa il ribasso al contenuto inviato dall'editor WMD?
In che modo Markdown memorizza il contenuto nel backend?È allo stesso modo *bold* o in qualche altro formato?Perché non posso semplicemente fare un codifica html?

Scusate se sono sembrato molto ingenuo.

È stato utile?

Soluzione

E 'probabilmente utile fare un passo indietro e chiedere alcune delle domande più grandi. La questione Markdown sta cercando di risolvere è quello della ricca editing nel browser. Considerate questo:. Ad un certo punto, per ogni pezzo di software per consentire il testo ricco che deve descrivere la ricchezza in un qualche modo, tuttavia, che può essere

Si potrebbe chiamare questa descrizione di ricchezza (dalla descrizione della ricchezza intendo come "questo pezzo di testo è in grassetto" o "questo pezzo di testo è un collegamento ipertestuale), che potremmo chiamare quella descrizione di ricchezza 'markup' - è segna il testo con meta "ricchezza".

Le implementazioni di testo ricchi possono assumere due approcci, sia a.) Nascondere la marcatura da parte dell'utente o b.) Lasciare che loro hanno accesso alla marcatura.

Per coloro che scelgono di nasconderlo, il risultato finale è molto spesso WYSIWYG. L'utente è ignaro di ciò che sta accadendo dietro le quinte. L'editore si prende cura dei dettagli. Pensate MS Word come esempio. Nessuno manipola il formato di markup Word come un utente finale regolare.

Per le implementazioni che scelgono di esporre il markup, un linguaggio di markup è quindi, al fine di consentire agli utenti di interacat con esso. Tali linguaggi di markup sarebbero cose come HTML facendo <tag> o il codice BB per esempio, fare le cose come [tag].

Markdown è una di queste di queste lingue.

A differenza dei precedenti tipi che ho citato, Markdown ha cercato di progettare se stessa in modo che il markup rende comune ASCII persone utilizzano già. Per esempio, è comune per le persone a Asterisk loro testo per impostare il tutto, *important*, e questa notazione nella Markdown è un indicatore del corsivo.

Per quanto riguarda lo stoccaggio, come Stephan ha sottolineato, il sistema sarà molto probabilmente conservare il mark-down prima, perché l'utente sarà molto probabilmente bisogno di avere la possibilità di modifica e il mark-down originale può essere ricordato per quello scopo.

Nella maggior parte dei sistemi che ho costruito, devo conservare il mark-down, e quindi normalizzare ad un secondo campo, che memorizza nella cache il rendering HTML del mark-down. In questo modo non devo fare markdown-> rendering HTML per ogni campo Markdown. Ci vuole un po 'più di spazio, ma io preferisco l'utente avere una risposta più veloce di utilizzare meno spazio di archiviazione DB.

Si deve anche essere presa quando accetta Markdown dal browser, come si può facilmente contenere tag <script> che devono essere filtrati. La maggior parte delle implementazioni di riduzione dei prezzi sarà anche riconoscere HTML intermediato con la formattazione Markdown, come modo per essere sicuri, è necessario assicurarsi che gli ingressi e le cache vengono sterilizzate correttamente.

Altri suggerimenti

Il motivo per cui si utilizza un sistema di codifica alternativo diverso dall'HTML è la sicurezza

Markdown e altri sistemi di codifica in stile wiki di solito non supportano i linguaggi di scripting

L'HTML supporta i linguaggi di scripting in molti modi (

I due principali problemi di sicurezza sono:

  1. I criminali malware utilizzano script nei contenuti generati dagli utenti per tentare azioni malware sul computer dei lettori di contenuti tramite script per accedere alle falle di sicurezza note

  2. Caricatori gratuiti che utilizzano script per sovvertire il resto del sito modificando il frame o gli stili del contenuto, ad es.annunci, menu, loghi ecc.Questo può anche essere un comportamento criminale se non semplicemente fastidioso

Utilizzando un linguaggio intermedio come Markdown hai il controllo totale sull'output renderizzato

Filtrare l'HTML è possibile, ma è anche complesso e rischioso

L'altro motivo significativo per un sistema di codifica alternativo è l'applicazione dello stile.L'HTML normale ha troppe opzioni.Limitando le opzioni disponibili, gli utenti possono utilizzare solo determinati stili.Di solito rende i contenuti più puliti e leggibili (confronta SO con Ebay)

Il motivo principale per l'utilizzo Markdown è la leggibilità di un testo marcato. Per esempio, è possibile inviare in una e-mail di solo testo e il lettore sarà ancora capire i emphiasis, proiettili, il testo sarà diviso in paragrafi eccetera.

Quando si chiede sulla memorizzazione dei dati, dipende. Se si abilita Markdown nel motore blog WordPress, che memorizza i dati che l'utente ha immesso esso - in Markdown. In Stack Overflow, tuttavia, sembra che i dati sono memorizzati in formato HTML. Almeno, i "dati di Stack Overflow dump" contenere HTML, non Markdown (ho visto persone che si lamentano ) che essi hanno per riconvertirlo).

Se si utilizza l'editor WMD, è possibile mostrare all'utente come le uscite sarà simile dopo essere stato convertito in HTML. Anche se Markdown sintassi è molto semplice, non è difficile fare errori. Quindi, è meglio per mostrare agli utenti l'uscita.

Un altro motivo per l'utilizzo di Markdown invece di un controllo WYSIWIG - un controllo WYSIWIG permette all'utente di utilizzare HTML nei dati si sta visualizzando sulla tua pagina web. Quindi, devi essere quello che decide quando c'è semplicemente errato HTML e quando si tratta di un male XSS / CSRF / qualunque cosa iniezione. In Markdown, è sufficiente convertire * qualcosa * a <b>something</b>, rimuovere eventuali elementi HTML Unknow e il gioco è fatto.

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