From 0f9970722f0223428398ee060c14d76c8bd81d64 Mon Sep 17 00:00:00 2001 From: Mia Winter Date: Sun, 17 Mar 2024 13:46:16 +0100 Subject: [PATCH] Improved SEO through better page titles (this mostly affects google) --- Wave/Components/Pages/Admin.razor | 6 +++--- Wave/Components/Pages/ArticleDeleteConfirm.razor | 6 +++--- Wave/Components/Pages/ArticleEditor.razor | 6 +++--- Wave/Components/Pages/ArticleView.razor | 6 +++--- Wave/Components/Pages/CategoryView.razor | 9 ++++++--- Wave/Components/Pages/Deleted.razor | 6 +++--- Wave/Components/Pages/Drafts.razor | 4 ++++ Wave/Components/Pages/EmailEdit.razor | 6 +++--- Wave/Components/Pages/EmailSignup.razor | 6 +++--- Wave/Components/Pages/Error.razor | 6 ++++-- Wave/Components/Pages/Future.razor | 5 +++++ Wave/Components/Pages/Home.razor | 2 +- Wave/Components/Pages/ManageApi.razor | 6 +++--- Wave/Components/Pages/ManageCategories.razor | 6 +++--- Wave/Components/Pages/ManageUsers.razor | 6 +++--- Wave/Components/Pages/Newsletter.razor | 6 +++--- Wave/Components/Pages/Review.razor | 4 ++++ Wave/Components/Pages/UserView.razor | 9 ++++++--- Wave/Program.cs | 3 +-- 19 files changed, 64 insertions(+), 44 deletions(-) diff --git a/Wave/Components/Pages/Admin.razor b/Wave/Components/Pages/Admin.razor index f04fa32..bd18b6f 100644 --- a/Wave/Components/Pages/Admin.razor +++ b/Wave/Components/Pages/Admin.razor @@ -17,7 +17,7 @@ @inject IStringLocalizer Localizer @inject IDistributedCache WaveDistributedCache -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix) @@ -40,8 +40,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; diff --git a/Wave/Components/Pages/ArticleDeleteConfirm.razor b/Wave/Components/Pages/ArticleDeleteConfirm.razor index c2b9f25..d639a48 100644 --- a/Wave/Components/Pages/ArticleDeleteConfirm.razor +++ b/Wave/Components/Pages/ArticleDeleteConfirm.razor @@ -9,7 +9,7 @@ @inject ILogger Logger @inject IStringLocalizer Localizer -@(TitlePrefix + (Article is not null ? Localizer["Delete_Title"] : Localizer["NotFound_Title"])) +@((Article is not null ? Localizer["Delete_Title"] : Localizer["NotFound_Title"]) + TitlePostfix) @if (Article is not null) { @@ -34,8 +34,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [Parameter] public Guid Id { get; set; } diff --git a/Wave/Components/Pages/ArticleEditor.razor b/Wave/Components/Pages/ArticleEditor.razor index 6bf3372..7d3f508 100644 --- a/Wave/Components/Pages/ArticleEditor.razor +++ b/Wave/Components/Pages/ArticleEditor.razor @@ -10,7 +10,7 @@ @inject UserManager UserManager @inject IStringLocalizer Localizer -@(TitlePrefix + Localizer["EditorTitle"]) +@(Localizer["EditorTitle"] + TitlePostfix) @if (User is null) {

@Localizer["EditorTitle"]

@@ -33,8 +33,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [CascadingParameter] private Task? AuthenticationState { get; set; } diff --git a/Wave/Components/Pages/ArticleView.razor b/Wave/Components/Pages/ArticleView.razor index 32501b0..9cc011b 100644 --- a/Wave/Components/Pages/ArticleView.razor +++ b/Wave/Components/Pages/ArticleView.razor @@ -22,7 +22,7 @@ @inject EmailFactory Email @inject IEmailService EmailService -@(TitlePrefix + (Article?.Title ?? Localizer["NotFound_Title"])) +@((Article?.Title ?? Localizer["NotFound_Title"]) + TitlePostfix) @if (Article is not null) { @@ -105,8 +105,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; #region Route Parameters diff --git a/Wave/Components/Pages/CategoryView.razor b/Wave/Components/Pages/CategoryView.razor index 3bb4d20..d150ab8 100644 --- a/Wave/Components/Pages/CategoryView.razor +++ b/Wave/Components/Pages/CategoryView.razor @@ -14,9 +14,12 @@ } + @if (Category is null) { + + } -@(TitlePrefix + Localizer["Title"] + " | " + (Category?.Name ?? "Not Found")) +@($"{Category?.Name ?? "Not Found"} {TitlePostfix}") @if (Category is null) {

@Localizer["NotFound_Title"]

@@ -29,8 +32,8 @@ } @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [Parameter] public string CategoryName { get; set; } = string.Empty; diff --git a/Wave/Components/Pages/Deleted.razor b/Wave/Components/Pages/Deleted.razor index 9a65975..1ac524c 100644 --- a/Wave/Components/Pages/Deleted.razor +++ b/Wave/Components/Pages/Deleted.razor @@ -8,7 +8,7 @@ @inject IDbContextFactory ContextFactory @inject IStringLocalizer Localizer -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix)

@Localizer["Title"]

@@ -23,8 +23,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; private List
Articles { get; } = []; diff --git a/Wave/Components/Pages/Drafts.razor b/Wave/Components/Pages/Drafts.razor index 5927f0d..056fd27 100644 --- a/Wave/Components/Pages/Drafts.razor +++ b/Wave/Components/Pages/Drafts.razor @@ -8,10 +8,14 @@ @inject UserManager UserManager @inject IStringLocalizer Localizer +@(Localizer["Title"] + TitlePostfix) +

@Localizer["Title"]

@code { + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; diff --git a/Wave/Components/Pages/EmailEdit.razor b/Wave/Components/Pages/EmailEdit.razor index c00039c..a573027 100644 --- a/Wave/Components/Pages/EmailEdit.razor +++ b/Wave/Components/Pages/EmailEdit.razor @@ -16,7 +16,7 @@ -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix) @@ -33,8 +33,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [Parameter, SupplyParameterFromQuery(Name = "user")] public string? Id { get; set; } diff --git a/Wave/Components/Pages/EmailSignup.razor b/Wave/Components/Pages/EmailSignup.razor index ee96957..e169392 100644 --- a/Wave/Components/Pages/EmailSignup.razor +++ b/Wave/Components/Pages/EmailSignup.razor @@ -22,7 +22,7 @@ -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix) @@ -44,8 +44,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [SupplyParameterFromForm(FormName = "email-signup")] private InputModel Model { get; set; } = new(); diff --git a/Wave/Components/Pages/Error.razor b/Wave/Components/Pages/Error.razor index a6d3b61..f56613a 100644 --- a/Wave/Components/Pages/Error.razor +++ b/Wave/Components/Pages/Error.razor @@ -3,7 +3,7 @@ @inject IStringLocalizer Localizer -@Localizer["Title"] +@(Localizer["Title"] + TitlePostfix)

@Localizer["Title"]

@@ -15,7 +15,9 @@

} -@code{ +@code { + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [CascadingParameter] private HttpContext? HttpContext { get; set; } diff --git a/Wave/Components/Pages/Future.razor b/Wave/Components/Pages/Future.razor index 28a64d4..117ad20 100644 --- a/Wave/Components/Pages/Future.razor +++ b/Wave/Components/Pages/Future.razor @@ -6,10 +6,15 @@ @inject IDbContextFactory ContextFactory @inject IStringLocalizer Localizer +@(Localizer["Title"] + TitlePostfix) +

@Localizer["Title"]

@code { + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; + private List
Articles { get; } = []; protected override async Task OnInitializedAsync() { diff --git a/Wave/Components/Pages/Home.razor b/Wave/Components/Pages/Home.razor index 73483dd..849bbb9 100644 --- a/Wave/Components/Pages/Home.razor +++ b/Wave/Components/Pages/Home.razor @@ -40,7 +40,7 @@ } -@(TitlePrefix[..^3]) +@(Customizations.Value.AppName ?? "Wave")
diff --git a/Wave/Components/Pages/ManageApi.razor b/Wave/Components/Pages/ManageApi.razor index 45386db..52c6b59 100644 --- a/Wave/Components/Pages/ManageApi.razor +++ b/Wave/Components/Pages/ManageApi.razor @@ -12,7 +12,7 @@ @inject IMessageDisplay Message @inject IStringLocalizer Localizer -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix)

@Localizer["Title"]

@@ -81,8 +81,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [SupplyParameterFromForm(FormName = "NewApiKey")] private InputModel Model { get; set; } = new(); diff --git a/Wave/Components/Pages/ManageCategories.razor b/Wave/Components/Pages/ManageCategories.razor index 9bec96f..50cdb9d 100644 --- a/Wave/Components/Pages/ManageCategories.razor +++ b/Wave/Components/Pages/ManageCategories.razor @@ -11,7 +11,7 @@ @inject IStringLocalizer Localizer @inject IMessageDisplay Message -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix) @@ -67,8 +67,8 @@ bg-error text-error-content @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; private InputModel Model { get; set; } = new(); private List Categories { get; } = new(); diff --git a/Wave/Components/Pages/ManageUsers.razor b/Wave/Components/Pages/ManageUsers.razor index a109daa..0727aeb 100644 --- a/Wave/Components/Pages/ManageUsers.razor +++ b/Wave/Components/Pages/ManageUsers.razor @@ -13,7 +13,7 @@ @inject IStringLocalizer Localizer @inject IMessageDisplay Toast -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix)

@Localizer["Title"]

@@ -57,8 +57,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; private string ModalId { get; } = "UserDialog"; [CascadingParameter] diff --git a/Wave/Components/Pages/Newsletter.razor b/Wave/Components/Pages/Newsletter.razor index bf3d618..c69022f 100644 --- a/Wave/Components/Pages/Newsletter.razor +++ b/Wave/Components/Pages/Newsletter.razor @@ -8,7 +8,7 @@ @inject IDbContextFactory ContextFactory @inject IOptions Features -@(TitlePrefix + Localizer["Title"]) +@(Localizer["Title"] + TitlePostfix)

@Localizer["Title"]

@@ -56,8 +56,8 @@ @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; private IReadOnlyList Newsletters { get; set; } = []; private int SubscribersTotal { get; set; } diff --git a/Wave/Components/Pages/Review.razor b/Wave/Components/Pages/Review.razor index 1b1cd59..e09a451 100644 --- a/Wave/Components/Pages/Review.razor +++ b/Wave/Components/Pages/Review.razor @@ -6,10 +6,14 @@ @inject IDbContextFactory ContextFactory @inject IStringLocalizer Localizer +@(Localizer["Title"] + TitlePostfix) +

@Localizer["Title"]

@code { + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; private List
Articles { get; } = []; protected override async Task OnInitializedAsync() { diff --git a/Wave/Components/Pages/UserView.razor b/Wave/Components/Pages/UserView.razor index e354ef8..6e5496d 100644 --- a/Wave/Components/Pages/UserView.razor +++ b/Wave/Components/Pages/UserView.razor @@ -15,9 +15,12 @@ } + @if (User is null) { + + } -@(TitlePrefix + @Localizer["Title"] + " | " + (User?.FullName ?? Localizer["NotFound_Title"])) +@($"{(User?.FullName ?? Localizer["NotFound_Title"])} {TitlePostfix}") @if (User is null) {

@Localizer["NotFound_Title"]

@@ -62,8 +65,8 @@ } @code { - [CascadingParameter(Name = "TitlePrefix")] - private string TitlePrefix { get; set; } = default!; + [CascadingParameter(Name = "TitlePostfix")] + private string TitlePostfix { get; set; } = default!; [CascadingParameter] public required HttpContext HttpContext { get; set; } diff --git a/Wave/Program.cs b/Wave/Program.cs index 7f9cc7c..a530075 100644 --- a/Wave/Program.cs +++ b/Wave/Program.cs @@ -173,8 +173,7 @@ builder.Services.Configure(builder.Configuration.GetSection(nameof(Features))); builder.Services.Configure(builder.Configuration.GetSection(nameof(Customization))); -builder.Services.AddCascadingValue("TitlePrefix", - sf => (sf.GetService>()?.Value.AppName ?? "Wave") + " - "); +builder.Services.AddCascadingValue("TitlePostfix", sf => " | " + (sf.GetService>()?.Value.AppName ?? "Wave")); var emailConfig = builder.Configuration.GetSection("Email").Get(); builder.Services.Configure(builder.Configuration.GetSection("Email"));