@model (bool IsFolder,List<ChildrenTree> Children)

@{
    var keyword = TempData["SearchKey"] as string;

    string? MatchKeyword(string? name)
    {
        if (string.IsNullOrWhiteSpace(keyword))
        {
            return name;
        }

        var startIndex = name!.IndexOf(keyword, StringComparison.CurrentCultureIgnoreCase);
        if (startIndex >= 0)
        {
            var match = name.Substring(startIndex, keyword.Length);
            return name[..startIndex] + $"<mark>{match}</mark>" + name[(startIndex + keyword.Length)..];
        }
        return name;
    }
}


@foreach (var item in Model.Children)
{
    <div class="row" data-name="@item.Name" data-is-folder="@Model.IsFolder.ToString().ToLower()">
        <div class="icon">
            <partial name="_IconPartial" model="(Model.IsFolder,item.Name)"/>
        </div>
        <div class="header">
            <span>
                <a asp-action="Index" asp-route-path="@(string.Join("/", item.CurrentPath))" title="@item.Name">
                    @Html.Raw(MatchKeyword(item.Name))
                </a>
            </span>
        </div>
        <div class="desc">
            <span>
                <a title="@item.Note">@(item.Note)</a>
            </span>
        </div>
        <div class="time">
            <time class="timeago" datetime="@item.LastUpdateTime">@item.LastUpdateTime</time>
        </div>
    </div>
}
评论加载中...