Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17d69ac124 |
@@ -62,7 +62,6 @@ namespace TerribleDev.Blog.Web.MarkExtension
|
|||||||
|
|
||||||
private void RenderTargetAttribute(Uri uri, HtmlRenderer renderer, LinkInline linkInline)
|
private void RenderTargetAttribute(Uri uri, HtmlRenderer renderer, LinkInline linkInline)
|
||||||
{
|
{
|
||||||
|
|
||||||
linkInline.SetAttributes(new HtmlAttributes() { Properties = new List<KeyValuePair<string, string>>() { new KeyValuePair<string, string>("target", "_blank"), new KeyValuePair<string, string>("rel", "noopener"), } });
|
linkInline.SetAttributes(new HtmlAttributes() { Properties = new List<KeyValuePair<string, string>>() { new KeyValuePair<string, string>("target", "_blank"), new KeyValuePair<string, string>("rel", "noopener"), } });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
34
src/TerribleDev.Blog.Web/MarkExtension/LinkConverter.cs
Normal file
34
src/TerribleDev.Blog.Web/MarkExtension/LinkConverter.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using System;
|
||||||
|
using Markdig;
|
||||||
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Renderers.Html.Inlines;
|
||||||
|
|
||||||
|
namespace TerribleDev.Blog.Web.MarkExtension
|
||||||
|
{
|
||||||
|
public class LinkConverter : IMarkdownExtension
|
||||||
|
{
|
||||||
|
private readonly Func<string, string> convertLink;
|
||||||
|
|
||||||
|
public LinkConverter(Func<string, string> convertLink)
|
||||||
|
{
|
||||||
|
this.convertLink = convertLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Setup(MarkdownPipelineBuilder pipeline)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Setup(MarkdownPipeline pipeline, IMarkdownRenderer renderer)
|
||||||
|
{
|
||||||
|
|
||||||
|
var htmlRenderer = renderer as HtmlRenderer;
|
||||||
|
if(htmlRenderer == null) return;
|
||||||
|
var inlineRenderer = htmlRenderer.ObjectRenderers.FindExact<LinkInlineRenderer>();
|
||||||
|
if(inlineRenderer == null) return;
|
||||||
|
inlineRenderer.TryWriters.Add((ren, inline) => {
|
||||||
|
return false;
|
||||||
|
inline.GetDynamicUrl =
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,9 +30,9 @@ namespace TerribleDev.Blog.Web.MarkExtension
|
|||||||
{
|
{
|
||||||
throw new Exception($"Error making link for {escapeUrl} @ {baseUrl}");
|
throw new Exception($"Error making link for {escapeUrl} @ {baseUrl}");
|
||||||
}
|
}
|
||||||
if(!parsedResult.IsAbsoluteUri && !escapeUrl.StartsWith("/"))
|
if(!escapeUrl.StartsWith("/"))
|
||||||
{
|
{
|
||||||
escapeUrl = $"/{baseUrl}/{escapeUrl}";
|
escapeUrl = $"{baseUrl}/{escapeUrl}";
|
||||||
}
|
}
|
||||||
renderer.WriteEscapeUrl($"{escapeUrl}{suffix}");
|
renderer.WriteEscapeUrl($"{escapeUrl}{suffix}");
|
||||||
renderer.Write("\"");
|
renderer.Write("\"");
|
||||||
|
|||||||
Reference in New Issue
Block a user