这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.1 KiB

LINGYUN.Abp.TextTemplating.Scriban

Module Description

Text templating Scriban engine module, providing template rendering implementation based on Scriban syntax.

Base Modules

  • Volo.Abp.TextTemplating.Scriban
  • LINGYUN.Abp.TextTemplating.Domain

Features

  • Provides Scriban template rendering engine
    • ScribanTemplateRenderingEngine - Scriban template rendering engine implementation
  • Supports the following features
    • Write templates using Scriban syntax
    • Support model binding
    • Support layout templates
    • Support conditional statements and loops
    • Support custom functions and filters
    • Support string operations and formatting
    • Support array and object operations

How to Use

  1. Add AbpTextTemplatingScribanModule dependency
[DependsOn(typeof(AbpTextTemplatingScribanModule))]
public class YouProjectModule : AbpModule
{
}
  1. Create and use Scriban templates
// Create template definition
var template = new TextTemplateDefinition(
    Guid.NewGuid(),
    "Welcome",
    "Welcome Email Template",
    renderEngine: "Scriban");

// Template content example
<!DOCTYPE html>
<html>
<body>
    <h1>Welcome {{ user.name }}!</h1>
    <p>Thank you for joining us.</p>
    {{ if is_first_time }}
        <p>Here are some tips to get started...</p>
    {{ end }}
    <ul>
    {{ for item in items }}
        <li>{{ item.name }}: {{ item.description }}</li>
    {{ end }}
    </ul>
</body>
</html>

// Use template
public class YourService
{
    private readonly ITemplateRenderer _templateRenderer;

    public YourService(ITemplateRenderer templateRenderer)
    {
        _templateRenderer = templateRenderer;
    }

    public async Task<string> RenderWelcomeEmailAsync(
        string userName, 
        bool isFirstTime,
        List<Item> items)
    {
        var model = new Dictionary<string, object>
        {
            ["user"] = new { name = userName },
            ["is_first_time"] = isFirstTime,
            ["items"] = items
        };

        return await _templateRenderer.RenderAsync(
            "Welcome",
            model
        );
    }
}

查看中文