117 lines
3.4 KiB
Plaintext
117 lines
3.4 KiB
Plaintext
@page "/blog"
|
|
@using YaeBlog.Core.Abstractions
|
|
@using YaeBlog.Core.Models
|
|
|
|
@inject IEssayContentService Contents
|
|
@inject NavigationManager NavigationInstance
|
|
|
|
<PageTitle>
|
|
Ricardo's Blog
|
|
</PageTitle>
|
|
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-sm-12 col-md-9">
|
|
@foreach (KeyValuePair<string, BlogEssay> pair in _essays)
|
|
{
|
|
<EssayCard Essay="@(pair.Value)"/>
|
|
}
|
|
|
|
<div class="row align-items-center justify-content-center p-3">
|
|
@if (_page == 1)
|
|
{
|
|
<div class="col-auto fw-light">上一页</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=@(_page - 1)">上一页</a>
|
|
</div>
|
|
}
|
|
|
|
@if (_page == 1)
|
|
{
|
|
<div class="col-auto">
|
|
1
|
|
</div>
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=2">2</a>
|
|
</div>
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=3">3</a>
|
|
</div>
|
|
}
|
|
else if (_page == _pageCount)
|
|
{
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=@(_pageCount - 2)">@(_pageCount - 2)</a>
|
|
</div>
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=@(_pageCount - 1)">@(_pageCount - 1)</a>
|
|
</div>
|
|
<div class="col-auto">
|
|
@(_pageCount)
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=@(_page - 1)">@(_page - 1)</a>
|
|
</div>
|
|
<div class="col-auto">
|
|
@(_page)
|
|
</div>
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=@(_page + 1)">@(_page + 1)</a>
|
|
</div>
|
|
}
|
|
|
|
@if (_page == _pageCount)
|
|
{
|
|
<div class="col-auto fw-light">
|
|
下一页
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="col-auto">
|
|
<a href="/blog/?page=@(_page + 1)">下一页</a>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-12 col-md-3">
|
|
<BlogInformationCard/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@code {
|
|
|
|
[SupplyParameterFromQuery] private int? Page { get; set; }
|
|
|
|
private readonly List<KeyValuePair<string, BlogEssay>> _essays = [];
|
|
private const int EssaysPerPage = 8;
|
|
private int _pageCount = 1;
|
|
private int _page = 1;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
_page = Page ?? 1;
|
|
_pageCount = Contents.Essays.Count / EssaysPerPage + 1;
|
|
|
|
if (EssaysPerPage * _page > Contents.Essays.Count + EssaysPerPage)
|
|
{
|
|
NavigationInstance.NavigateTo("/NotFount");
|
|
return;
|
|
}
|
|
|
|
_essays.AddRange(Contents.Essays
|
|
.OrderByDescending(p => p.Value.PublishTime)
|
|
.Skip((_page - 1) * EssaysPerPage)
|
|
.Take(EssaysPerPage));
|
|
}
|
|
|
|
}
|