2012-03-09 8 views
8

Sto sviluppando un wiki con Python/Django, in parte per scopi didattici. Fino ad ora mi manca ancora il giusto linguaggio di marcatura. Ho provato un punto di vista, tra cui Creole e Markdown, che ha funzionato bene tranne che per il supporto del tavolo. I linguaggi di markup wiki comuni sembrano supportare solo tabelle rudimentali, cioè una singola riga per cella o nessun markup complesso all'interno delle celle. Ma gli utenti del mio wiki vogliono essere in grado di creare tabelle con testo e elenchi di formati più grandi all'interno delle celle. Ho i miei problemi con la ricerca di un linguaggio di markup che in realtà può farlo.Linguaggio di markup Wiki con supporto di tabella eccellente

Ho esaminato il linguaggio di markup MediaWiki che sembra supportare tutto ma penso che l'utilizzo di questo sarebbe eccessivo. Il resto del markup può essere abbastanza semplice con l'attenzione per la facilità di scrittura del markup (trovo il markup MediaWiki un po 'brutto qualche volta). Inoltre, ci deve essere un modulo Python per tradurre il markup in HTML che posso usare nella webapp. Sto ancora cercando uno per il markup MediaWiki.

Un'altra alternativa sarebbe quella di scaricare i linguaggi di markup wiki e consentire invece un insieme di tag HTML definiti per il markup. Ma questo rende più difficile scrivere articoli wiki, dal momento che HTML non è inventato per tale uso. e anche trovare e fuggire dall'HTML proibito potrebbe essere piuttosto complicato. Preferirei avere un bel linguaggio di markup con un'implementazione Python leggera.

Qualcuno sa di un linguaggio di markup con supporto esteso alla tabella e un'implementazione in Python che potrei usare?

Grazie in anticipo!

risposta

1

Ho trovato una soluzione da quando ho trovato che la reST è complicata da usare per utenti tecnicamente inesperti. Potrei essere un po 'elaborato ma funziona per me.

La chiave è un'estensione per un linguaggio di markup già esistente. Ho trovato Markdown piuttosto piacevole, nonostante la mancanza di supporto da tavolo. Utilizzando Python-Markdown, here è tutto ciò che devi sapere per scrivere la tua estensione. Non è così complicato. Ho hackerato qualcosa insieme in mezz'ora e funziona davvero così lontano. Mostrerei qui il codice ma non ne sono ancora molto orgoglioso;) Fondamentalmente, analizzi un blocco markup e inserisci gli elementi della tabella nel DOM come preferisci.

Immagino che ogni implementazione utilizzabile di un linguaggio di markup dovrebbe avere un qualche tipo di meccanismo di estensione, quindi dovrebbe essere possibile scrivere estensioni anche per altre lingue e implementazioni. Questa non è la soluzione più comoda, ma è comunque meglio che usare un linguaggio brutto solo per il gusto della funzione.

4

Non so se si tratta delle vostre esigenze, ma è possibile utilizzare reStructuredText. Sphinx genera html da esso per la documentazione python e la sua scritta in python, quindi dovrebbe essere facile da usare per questo scopo. Lo trovo molto pulito e facile da leggere, come è stato progettato per essere, e può fare tabelle piuttosto complicate.

+0

+1 anche se non sono sicuro che 'rest' sia un linguaggio di markup. – Simon

+0

Suppongo che la definizione esatta di un linguaggio di markup sia un po 'varia, quindi non so se il 'riposo' rientra tecnicamente in questa categoria, ma è facile da scrivere, facile da leggere e compila a html di bell'aspetto, quindi è probabilmente un buon candidato per questo tipo di utilizzo. – aquavitae

+0

Grazie per il suggerimento. REST supporta davvero tutto ciò di cui ho bisogno e ha persino l'integrazione in Django. Tuttavia, non lo trovo così facile da leggere per i non-techies e anche più difficile da scrivere, se si guarda al markup effettivo di un tavolo complesso. Almeno, non mi piacerebbe essere costretto ad adattare l'intera colonna se una cellula è cresciuta un po '. Mi piacerebbe sapere come fanno gli sviluppatori Python;) Comunque, grazie! – j0ker