Skip to content

Commit f457dff

Browse files
authored
Merge pull request #716 from poppastring/bluesky-share-button
Add BlueSky sharing support to blog posts close #712
2 parents 0b4a3cc + d765db4 commit f457dff

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)