使用Markdown作为Grails视图

使用Markdown作为Grails视图,grails,markdown,Grails,Markdown,我们正在编写一个grails(grails2.1.1)项目,其中,对于我们的一些视图,我们希望使用markdown而不是gsp文件 目前,我们可以在特殊布局中使用。这使我们可以按如下方式渲染降价视图: render(布局:'docs',视图:'markdown') 然而,这需要降价页面有一个.gsp扩展,而出于实际原因,我们需要它有一个.md扩展 有人知道更好地使用markdown作为grails视图吗?如果我们可以避免使用.gsp扩展名,那就太好了。简短的回答 如果没有一些重大的修改,您将无法

我们正在编写一个grails(grails2.1.1)项目,其中,对于我们的一些视图,我们希望使用markdown而不是gsp文件

目前,我们可以在特殊布局中使用。这使我们可以按如下方式渲染降价视图:

render(布局:'docs',视图:'markdown')

然而,这需要降价页面有一个.gsp扩展,而出于实际原因,我们需要它有一个.md扩展

有人知道更好地使用markdown作为grails视图吗?如果我们可以避免使用.gsp扩展名,那就太好了。

简短的回答 如果没有一些重大的修改,您将无法使用。分布式GrailsViewResolver与.gsp和.jsp扩展紧密相连

请参阅以进行验证

长话短说 您可能能够设计自己的Ant任务,将其挂接到Grails应用程序的编译周期中,这样,您至少可以通过GroovyPageCompiler编译*.md文件

这个过程可能看起来像(虽然不完全是这样,因为为了简单起见,在本例中我依赖插件的taglib来进行渲染)

但这并不能解决你所有的问题。您还需要注册一个新的视图解析器,要做到这一点,您将不可避免地走上重写视图的道路

听起来,将文件存储在conf目录中的解决方案可能是目前最好的选择(尽管有点脏)。也许将来有人会花时间考虑可配置的GSP文件扩展名,这可能会解决您的问题


我希望您能发现其中一些信息很有用。

我今天做了几乎相同的事情,但采用了另一种方法。我想提供这个项目的自述文件,所以我真的不能把它移到任何地方。最后,我将它从
readme.md
软链接到
grails-app/views/readme/readme.gsp
。我对整件事都很担心


是的,如果你和你所有的同事都在*-尼克斯上,软链接是有效的,所以这不是一种平台安全的方式

我认为有一些方法可以将其他文件映射为gsp文件,例如,看看gsp arse插件,它将.js文件映射为gsp,这样js文件将像gsp文件一样被处理。这可能是解决办法。谢谢。看看他们是怎么实现的,看看我们能不能用。我会回来报到的!检查这个项目:谢谢!不过,小胡子并不是我们想要的:(我们最终做的是将标记保存在conf目录中,这样我们就可以使用getResource方法集来访问它。然后我们读入文本并将其传递给一个专用的视图gsp。这并不理想,但为这个小项目工作很简单。哦,谢谢,我将在本周内查看这些类。我想知道ea是如何实现的。)sy将使用Spring将它们替换为专门的子类。虽然我对我们当前的解决方案非常满意,但我认为这可能是问题的大部分答案(将很快决定).是的,这是可行的,但您必须对静态定义.gsp扩展名的应用程序框架的每个部分进行子类化。这可能会很快失控并变得无法维护。更好的解决方案是在编译阶段添加一个任务,在编译gsp之前将.md文件复制到.gsp扩展名(可能是EventCompileStartHook),然后清理项目目录中的.gsp。这是我过去为实现类似目标所做的。谢谢你的回答。我认为如果我们决定在更大的项目中使用此文档技术,我们可能会考虑制作一个插件来重命名.md文件或类似的东西。目前,我认为我们正在很高兴使用conf目录方法!