2012-10-11 11 views
7

Chúng tôi đang viết một dự án grails (Grails 2.1.1) ở đâu, đối với một số quan điểm của chúng tôi, chúng tôi muốn sử dụng markdown thay vì tệp gsp.Sử dụng Markdown làm Grails View

Hiện tại, chúng tôi có thể thực hiện việc này bằng cách sử dụng markdown plugin trong bố cục đặc biệt. Điều này cho phép chúng tôi để làm cho quan điểm markdown như vậy:

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

Tuy nhiên, điều này đòi hỏi trang markdown có một phần mở rộng .gsp, khi nào, vì những lý do thực tế, chúng ta cần nó để có một phần mở rộng .md.

Có ai biết cách tốt hơn để sử dụng đánh dấu dưới dạng chế độ xem grails không? Nó sẽ là tuyệt vời nếu chúng ta có thể tránh sử dụng phần mở rộng .gsp.

+1

Tôi nghĩ có một số cách để ánh xạ các tệp khác dưới dạng tệp gsp, ví dụ: xem plugin GSP-ass, nó ánh xạ các tệp .js dưới dạng gsp sao cho tệp js sẽ được xử lý giống như tệp gsp. Nó có thể là giải pháp. –

+0

Cảm ơn. Gonna xem xét cách họ thực hiện điều đó và xem đó có phải là thứ chúng tôi có thể sử dụng hay không. Sẽ báo cáo lại! – River

+0

kiểm tra dự án này: https://github.com/edvinasbartkus/grails-mustache – moskiteau

Trả lời

2

Câu trả lời ngắn

Bạn sẽ không thể thiếu một số thay đổi lớn. GrailsViewResolver phân tán được gắn cứng với các phần mở rộng .gsp và .jsp.

Xem grails-core on github để xác minh.

The Long trả lời

Bạn có thể có thể thời trang nhiệm vụ Ant của riêng bạn để móc nó vào chu kỳ Compile của ứng dụng Grails của bạn do đó, ở mức tối thiểu, bạn có thể biên dịch tập tin * .md của bạn thông qua GroovyPageCompiler .

Quá trình đó có thể trông giống như this (mặc dù không chính xác, vì tôi dựa vào taglib của plugin để thực hiện hiển thị trong trường hợp này, để đơn giản).

Nhưng điều này không giải quyết được tất cả vấn đề của bạn. Bạn cũng cần phải đăng ký trình giải quyết chế độ xem mới và để làm điều đó, bạn chắc chắn sẽ đi xuống đường viết lại GrailsDispatcherServlet.

Có vẻ như giải pháp lưu trữ tệp của bạn trong thư mục conf có thể là đặt cược tốt nhất (mặc dù bị bẩn) của bạn ngay bây giờ. Có thể ai đó sẽ dành thời gian để cho phép các phần mở rộng tệp GSP có thể định cấu hình trong tương lai và điều đó có thể giải quyết vấn đề của bạn trên đường.

Tôi hy vọng bạn thấy một số thông tin này hữu ích.

+0

Xin cảm ơn, tôi sẽ xem qua các lớp đó trong tuần. Tôi tự hỏi sẽ dễ dàng như thế nào khi sử dụng Spring để trao đổi chúng với các lớp con chuyên biệt. Mặc dù tôi chủ yếu hài lòng với giải pháp hiện tại của chúng tôi, tôi nghĩ rằng đây có thể là câu trả lời cho câu hỏi (sẽ quyết định ngay). – River

+0

Vâng, có thể thực hiện được, nhưng bạn sẽ phải phân lớp mọi phần của khung ứng dụng định nghĩa tĩnh phần mở rộng .gsp. Điều này có thể nhanh chóng thoát ra khỏi tầm tay và trở nên không thể duy trì được. Một giải pháp tốt hơn sẽ là thêm một nhiệm vụ vào giai đoạn biên dịch sao chép các tệp .md của bạn thành phần mở rộng .gsp trước khi gsp được biên dịch (có thể là móc eventCompileStart), sau đó dọn dẹp tệp .gsp trong thư mục dự án. Đó là những gì tôi đã làm trong quá khứ cho một mục tiêu tương tự. –

+0

Cảm ơn câu trả lời. Tôi nghĩ rằng nếu chúng ta quyết định sử dụng kỹ thuật tài liệu này cho một dự án lớn hơn, có lẽ chúng ta sẽ xem xét việc tạo một plugin để đổi tên các tệp .md, hoặc một cái gì đó tương tự. Trong thời gian này, tôi nghĩ rằng chúng tôi hài lòng với phương pháp thư mục conf! – River

0

Tôi đã làm khá nhiều điều tương tự nhưng với một cách tiếp cận khác ngày hôm nay. Tôi muốn phục vụ tập tin readme của dự án nên tôi không thể di chuyển nó ở đâu cả. Tôi đã kết thúc phần mềm liên kết nó từ readme.md đến grails-app/views/readme/readme.gsp. Tôi posted về toàn bộ sự việc.

Và có - các liên kết mềm hoạt động nếu bạn và tất cả đồng nghiệp của bạn đang ở trên * -ixix - do đó, đây không phải là cách an toàn để thực hiện điều đó.