Domanda

Sto costruendo un sito Web che richiede funzionalità di markup di base.Non posso utilizzare plug-in di terze parti, quindi ho solo bisogno di un modo semplice per convertire il markup in HTML.Potrei avere un totale di 3 tag che consentirò.

Qual è il modo migliore per convertire ==Heading== A <h2>Heading</h2>, O --bold-- A <b>bold</b>?Questo può essere fatto semplicemente con Regex o qualcuno ha una funzione semplice?

Lo sto scrivendo in C#, ma probabilmente esempi di altri linguaggi funzionerebbero.

Seguito:Questa è una parte così piccola del mio sito Web che mi è piaciuta la semplicità dell'utilizzo di una semplice sostituzione di Regex.Ho fatto questo lavoro in C# con il seguente codice:

string html = Regex.Replace("==This will be inside h2==", "==([^=]*)==", "< h2>$1< /h2>")

.NET utilizza $1 notazione invece di \1 notazione utilizzata in altre lingue.

È stato utile?

Soluzione

Non è davvero un problema semplice, perché se hai intenzione di mostrare le cose all'utente, dovrai anche ripulire l'input per assicurarti di non crearne alcuno cross Site Scripting vulnerabilità.

Detto questo, probabilmente potresti fare qualcosa di piuttosto semplice poiché descrivi più facilmente con la sostituzione di un'espressione regolare.

Per esempio

replace the pattern ==([^=]*)== with <h2>\1</h2>

Altri suggerimenti

C'è anche un modulo perl e un progetto php per fare questo.Il codice sorgente di entrambi potrebbe essere utile per sviluppare la tua soluzione.

Utilizzo Markdown (lo stesso linguaggio di markup leggero utilizzato su questo sito).Per C# è disponibile un ottimo pezzo di codice sorgente Qui.Supporta pienamente Markdown, anche se non sembra essere mantenuto.Ma per il momento funziona davvero bene ed è open source gratuito.

La parte migliore è che tutto il lavoro viene svolto per te se includi questa fonte nel tuo progetto.È molto piccolo;fondamentalmente una singola chiamata al metodo per trasformare una porzione di testo in HTML.

Questo dipende davvero dalla sintassi del Wiki che stai utilizzando poiché ce ne sono diverse.Ovviamente il software wiki ha questa funzionalità da qualche parte;se non riesci a trovare un pacchetto software che faccia questo per te, potresti iniziare a cercare il codice pertinente nel tuo software wiki.

Forse Questo è ciò di cui hai bisogno.

Questa pagina è una raccolta di collegamenti, descrizioni e rapporti sullo stato dei vari parser MediaWiki alternativi, ovvero programmi e progetti, diversi da MediaWiki stesso, che sono in grado o intendono tradurre la sintassi del markup testuale di MediaWiki in qualcos'altro.

Probabilmente eccessivo per i tuoi 3 tag, ma se esplode in un linguaggio di markup a tutti gli effetti e le espressioni regolari iniziano a sembrare spaventose, allora potresti prendere in considerazione antlr

Come ha detto Joseph, Markdown è la soluzione migliore per risolvere il problema del testo in HTML.

MarkdownSharp è leggero, facile da usare e ben testato poiché è l'implementazione di StackOverflow!

new Markdown().Transform("**markdown text**");

http://blog.stackoverflow.com/2009/12/introducing-markdownsharp/

Ulteriori informazioni sulla sintassi di Markdown - http://en.wikipedia.org/wiki/Markdown

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