2012-10-11 10 views
7

Stiamo scrivendo un progetto Grails (Grails 2.1.1) in cui, per alcune delle nostre viste, vogliamo utilizzare markdown anziché file gsp.Utilizzo di Markdown come vista di Grails

Al momento possiamo farlo utilizzando lo markdown plugin in un layout speciale. Questo ci permette di rendere viste riduzione dei prezzi in questo modo:

render(layout: 'docs', view: 'markdown')

Tuttavia, questo richiede nella pagina mark-down per avere un'estensione .gsp, quando, per ragioni pratiche, abbiamo bisogno di avere un'estensione .md.

Qualcuno sa un modo migliore per utilizzare il markdown come vista Grails? Sarebbe fantastico se potessimo evitare di utilizzare l'estensione .gsp.

+1

Penso che ci sia un modo per mappare altri file come file gsp, per esempio guarda il plugin GSP-ass, mappa i file .js come gsp in modo che i file js vengano elaborati proprio come un file gsp. Potrebbe essere la soluzione. –

+0

Grazie. Andiamo a vedere come lo implementano e vediamo se è qualcosa che possiamo usare. Riferirò! – River

+0

controlla questo progetto: https://github.com/edvinasbartkus/grails-mustache – moskiteau

risposta

2

La risposta breve

Non si sarà in grado di senza alcune modifiche pesanti. GrailsViewResolver distribuito è strettamente legato alle estensioni .gsp e .jsp.

Vedere grails-core on github per la verifica.

La risposta lunga

Potreste essere in grado di moda il proprio compito Ant ad agganciarlo nel ciclo di compilazione della vostra applicazione Grails in modo che, come minimo, è possibile compilare i file * .MD attraverso il GroovyPageCompiler .

Tale processo potrebbe sembrare qualcosa come this (anche se non esattamente, poiché mi sto affidando al taglib del plugin per eseguire il rendering in questo caso, per semplicità).

Ma questo non risolve tutti i tuoi problemi. Dovresti anche registrare un nuovo risolutore di viste e, per farlo, dovresti inevitabilmente intraprendere la strada della riscrittura dello GrailsDispatcherServlet.

Sembra che la soluzione per archiviare i file nella directory conf sia la migliore (anche se sporca) scommessa per ora. Forse qualcuno si prenderà il tempo per consentire le estensioni di file GSP configurabili in futuro, e questo potrebbe risolvere il tuo problema lungo la strada.

Spero che alcune di queste informazioni siano utili.

+0

Oh grazie, darò un'occhiata a quelle lezioni durante la settimana. Mi chiedo quanto sarà facile usare Spring per scambiarli con sottoclassi specializzate. Sebbene sia per lo più felice della nostra attuale soluzione, penso che questa potrebbe essere la risposta alla domanda (deciderà a breve). – River

+0

Sì, è fattibile, ma dovrai sottoclassi ogni parte del framework dell'applicazione che definisce staticamente l'estensione .gsp. Questo può rapidamente sfuggire di mano e diventare non mantenibile. Una soluzione migliore sarebbe quella di aggiungere un'attività alla fase di compilazione che copi i file .md in un'estensione .gsp prima che i gsp vengano compilati (magari hook di EventCompileStart), quindi ripulire i file .gsp nelle directory di progetto. Questo è quello che ho fatto in passato per un obiettivo simile. –

+0

Grazie per la risposta. Penso che se decidessimo di usare questa tecnica di documentazione per un progetto più ampio, probabilmente faremo un plugin per rinominare i file .md o qualcosa di simile. Per il momento, penso che siamo soddisfatti del metodo di directory conf! – River

0

Ho fatto praticamente la stessa cosa ma con un altro approccio oggi. Volevo servire il file readme del progetto, quindi non potevo davvero spostarlo da nessuna parte. Ho finito con il soft linking da readme.md a grails-app/views/readme/readme.gsp. I posted sull'intera faccenda.

E sì - il collegamento soft funziona se tu e tutti i tuoi colleghi siete su * -nix - quindi non è un modo sicuro per farlo.

Problemi correlati