30. tháng 1 2025
Trong C#, không có sẵn engine mẫu như trong golang, vì vậy cần thực hiện việc chọn lựa một giải pháp phù hợp.
Sau khi tìm hiểu, tôi không rõ liệu nó có thể được sử dụng bên ngoài Visual Studio hay không. Do đó, tôi đã quyết định không tiếp tục với lựa chọn này.
Tôi rất thích cú pháp của Razor, nhưng dự án này dường như có liên quan đến các yếu tố chính trị, cộng thêm tài liệu hướng dẫn trông khá lộn xộn. Vì vậy, tôi cảm thấy không an tâm để thử nghiệm.
Scriban là một ngôn ngữ kịch bản nhanh, mạnh mẽ, an toàn và nhẹ nhàng cho .NET, chủ yếu được phát triển cho việc tạo mẫu văn bản với chế độ tương thích để phân tích cú pháp các mẫu liquid.
So với lựa chọn thứ hai, Scriban có tài liệu rõ ràng hơn và được nhiều người sử dụng hơn. Vì thế, tôi quyết định bắt đầu thử nghiệm keo ma cao với Scriban.
1dotnet.exe add package Scriban --version 5.10.0
1// Phân tích một mẫu Scriban
2var template = Template.Parse("Xin chào {{name}}!");
3var result = template.Render(new { Name = "Thế Giới" }); // => "Xin chào Thế Giới!"
Một điều kỳ lạ là tên biến trong mẫu phải ở dạng chữ thường như hello_world
chứ không thể là helloWorld
. Nếu không tuân theo quy tắc này, biến sẽ không thể được thay thế.
1.nuget\packages\scriban\5.10.0\lib\net7.0\Scriban.dll : cảnh báo IL2104: Tập tin 'Scriban' tạo ra cảnh báo cắt giảm.
2.nuget\packages\scriban\5.10.0\lib\net7.0\Scriban.dll : cảnh [tỉ số trận đấu](/blog/scrapy/) báo IL3053: Tập tin 'Scriban' tạo ra cảnh báo phân tích AOT.
Tập tin Scriban.dll có kích thước lên tới 439KB.
1> ls bin/Release/net8.0/publish/ -lah
2tổng cộng 812K
3439K Scriban.dll*
4201K System.CommandLine.dll*
512K xxx.dll*
6140K xxx.exe