Skip to content

Commit d765db4

Browse files
committed
Add BlueSky sharing support to blog posts
Added BlueSky as a new social media sharing option in `_BlogItem.cshtml`, alongside Twitter, Reddit, Facebook, and LinkedIn. Introduced `PostToBlueSkyTagHelper` to generate BlueSky sharing links, including post title and permalink encoding. Updated Razor views to ensure consistent integration of the BlueSky sharing feature across all relevant sections of the blog post footer.
1 parent 0b4a3cc commit d765db4

File tree

6 files changed

+38
-5
lines changed

6 files changed

+38
-5
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System;
2+
using System.Text.Encodings.Web;
3+
using System.Threading.Tasks;
4+
using DasBlog.Services;
5+
using DasBlog.Web.Models.BlogViewModels;
6+
using Microsoft.AspNetCore.Razor.TagHelpers;
7+
8+
namespace DasBlog.Web.TagHelpers
9+
{
10+
public class PostToBlueSkyTagHelper : TagHelper
11+
{
12+
private const string BLUESKY_SHARE_URL = "https://bsky.app/intent/compose?text={0}";
13+
private readonly IDasBlogSettings dasBlogSettings;
14+
public PostViewModel Post { get; set; }
15+
16+
public PostToBlueSkyTagHelper(IDasBlogSettings dasBlogSettings)
17+
{
18+
this.dasBlogSettings = dasBlogSettings;
19+
}
20+
21+
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
22+
{
23+
output.TagName = "a";
24+
output.TagMode = TagMode.StartTagAndEndTag;
25+
output.Attributes.SetAttribute("class", "dasblog-a-share-bluesky");
26+
string text = $"{Post.Title} {dasBlogSettings.RelativeToRoot(Post.PermaLink)}";
27+
output.Attributes.SetAttribute("href", string.Format(BLUESKY_SHARE_URL, UrlEncoder.Default.Encode(text)));
28+
29+
var content = await output.GetChildContentAsync();
30+
output.Content.SetHtmlContent(content.GetContent());
31+
}
32+
}
33+
}

source/DasBlog.Web.UI/Themes/darkly/_BlogItem.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
Categories: <post-categories-list post="@Model" >, </post-categories-list>
2323
</div>
2424
<div class="col-md-12 mb-6">
25-
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>
25+
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>, <post-to-blue-sky post="@Model">BlueSky</post-to-blue-sky>
2626
</div>
2727
<div dasblog-authorized class="col-md-12 mb-6">
2828
<post-edit-link post="@Model" />

source/DasBlog.Web.UI/Themes/dasblog/_BlogItem.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
Categories: <post-categories-list post="@Model" >, </post-categories-list>
2222
</div>
2323
<div class="col-md-12 mb-6">
24-
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>
24+
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>, <post-to-blue-sky post="@Model">BlueSky</post-to-blue-sky>
2525
</div>
2626
<div dasblog-authorized class="col-md-12 mb-6">
2727
<post-edit-link post="@Model" />

source/DasBlog.Web.UI/Themes/fulcrum/_BlogItem.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<post-created-date post="@Model" />
2525
</div>
2626
<div class="col-md-12 mb-6">
27-
<post-to-twitter post="@Model">Share on Twitter</post-to-twitter>
27+
<post-to-twitter post="@Model">Share on Twitter</post-to-twitter>, <post-to-blue-sky post="@Model">Share BlueSky</post-to-blue-sky>
2828
</div>
2929
<div dasblog-authorized class="col-md-12 mb-6">
3030
<post-edit-link post="@Model" />

source/DasBlog.Web.UI/Themes/journal/_BlogItem.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
Categories: <post-categories-list post="@Model" >, </post-categories-list>
2222
</div>
2323
<div class="col-md-12 mb-6">
24-
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>
24+
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>, <post-to-blue-sky post="@Model">BlueSky</post-to-blue-sky>
2525
</div>
2626
<div dasblog-authorized class="col-md-12 mb-6">
2727
<post-edit-link post="@Model" />

source/DasBlog.Web.UI/Themes/median/_BlogItem.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<post-created-date post="@Model" />
2626
</div>
2727
<div class="col-md-12 mb-6">
28-
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>
28+
Share on <post-to-twitter post="@Model">Twitter</post-to-twitter>, <post-to-reddit post="@Model">Reddit</post-to-reddit>, <post-to-facebook post="@Model">Facebook</post-to-facebook> or <post-to-linked-in post="@Model">LinkedIn</post-to-linked-in>, <post-to-blue-sky post="@Model">BlueSky</post-to-blue-sky>
2929
</div>
3030
<div dasblog-authorized class="col-md-12 mb-6">
3131
<post-edit-link post="@Model" />

0 commit comments

Comments
 (0)