7

我们正在编写一个 grails (Grails 2.1.1) 项目,对于我们的某些视图,我们希望使用 markdown 而不是 gsp 文件。

目前,我们可以使用特殊布局中的降价插件来做到这一点。这使我们可以像这样渲染 markdown 视图:

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

但是,这要求降价页面具有 .gsp 扩展名,而出于实际原因,我们需要它具有 .md 扩展名。

有谁知道将markdown用作grails视图的更好方法?如果我们可以避免使用 .gsp 扩展名,那就太好了。

4

2 回答 2

2

简短的回答

如果不进行一些重大修改,您将无法做到这一点。分布式 GrailsViewResolver 硬绑定到 .gsp 和 .jsp 扩展。

请参阅github 上的 grails-core进行验证。

长答案

您或许可以设计自己的 Ant 任务,将其挂接到 Grails 应用程序的编译周期,这样至少您可以通过 GroovyPageCompiler 编译 *.md 文件。

该过程可能看起来像这样(尽管不完全是,因为在这种情况下,为了简单起见,我依靠插件的 taglib 来进行渲染)。

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

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

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

于 2012-10-21T15:42:21.973 回答
0

我做了几乎相同的事情,但今天采用了另一种方法。我想提供项目的自述文件,所以我无法真正将它移动到任何地方。我最终将它软链接readme.mdgrails-app/views/readme/readme.gsp. 我发布了整个事情。

是的——如果你和你的所有同事都在 *-nix 上,软链接就可以工作——所以这不是一种平台安全的方式。

于 2014-11-20T21:22:24.180 回答