Tower.js kết thúc tốt đẹp các hệ thống động cơ express.js mẫu, vì vậy bạn sẽ có thể sử dụng bất kỳ express.js mẫu động cơ bằng cách thêm dòng sau vào cấu hình Tower.View.engine = "haml"
Tower.js sử dụng mint, trong đó có HAML được tích hợp sẵn, vì vậy bạn chỉ cần haml module trong thư mục của mình.
Mỏng là vấn đề. Đầu tiên, nó không nằm trong mint.js trực tiếp, vì vậy bạn cần phải đăng ký một công cụ mẫu mới. Do đó bạn cần phải
tạo hàm customAdapter
mà mint.js có thể sử dụng, bạn có thể xem mã nguồn mint.js. Heres một ví dụ của hàm Haml adapter:
function(content, options, callback) {
var result;
result = require('hamljs').render(content, options || {});
if (callback) {
callback.call(this, null, result);
}
return result;
}
- bạn sẽ cần thêm adapter để mint.js bằng cách làm
require("mint").engines.slim = customAdapter
Nhưng không có động cơ express.js cho Slim, và kể từ Slim chứa đoạn mã ruby, nó không có khả năng sẽ có.
Nếu bạn thực sự muốn làm như vậy, bạn sẽ cần tạo trình phân tích cú pháp javascript của riêng mình cho các tệp mẫu (có thể sử dụng một cái gì đó như http://opalrb.org/, mặc dù không có thư viện ruby cụ thể), và sau đó tạo một công cụ express.js (mà tôi không biết làm thế nào để).
Tôi nghi ngờ nó sẽ là một bài tập rất hiệu quả.
Tôi khuyên bạn nên chuyển đổi các tệp Slim của bạn thành haml (hoặc ngọc bích hoặc bất kỳ công cụ mẫu nào có thể được sử dụng bởi express.js) hoặc không thực hiện di chuyển.
Tôi cũng không thể tìm bất kỳ cách nào để tự động chuyển đổi Slim thành haml hoặc bất kỳ công cụ mẫu nào khác (có thể do mã chứa mã ruby), vì vậy bạn sẽ phải thực hiện chuyển đổi theo cách thủ công.
Nguồn
2013-04-22 09:59:20
Từ những gì tôi đã nghe từ các chàng trai Slim, nó sẽ được tương đối dễ dàng để thực hiện với Slim, nhưng không ai đã giải quyết nó thông qua các cơ chế của nó. Ngoài ra, bạn sẽ có bất kỳ thông tin chi tiết nào chuyển hướng này về phía Meteor vs Tower vì chúng tôi chủ yếu từ bỏ phần nào trên Tower do các bản cập nhật sắp tới chậm hơn trong thời gian gần đây. – ylluminate
Xin lỗi tôi không quen với Meteor. Tower.js về cơ bản chỉ là một chất kết dính giữa các mô-đun rất phổ biến và nó sử dụng express.js trong nội bộ cho chế độ xem kết xuất. Meteor có vẻ giống như một khung công tác có liên quan nhiều hơn, và trộn lẫn chức năng phía máy chủ và máy khách. Xem xét điều đó, tôi sẽ tưởng tượng sẽ khó khăn hơn khi chuyển một ứng dụng hiện có sang Meteor sau đó đến Tower.js. Templating ngôn ngữ cũng không phải là dễ dàng để thả vào Meteor, mặc dù có một số người đã tạo ra các gói cho nó (từ tìm kiếm rất nhanh của tôi về vấn đề này) –