From 8ef0fc63fa4dd2f76bd203c199aa419eea525854 Mon Sep 17 00:00:00 2001 From: Vladekk Date: Mon, 9 May 2016 18:31:02 +0300 Subject: [PATCH 1/2] Fixed Uri encoding in rss feed See http://stackoverflow.com/questions/7624987/whats-the-difference-between-uri-tostring-and-uri-absoluteuri --- .../Services/Syndication/SyndicationGenerator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs b/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs index a1cbb891c..d1bd5fc08 100644 --- a/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs +++ b/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs @@ -673,7 +673,7 @@ private static void WriteRssItem(XmlWriter writer, IPublishable publishable) } writer.WriteElementString("description", content); - writer.WriteElementString("link", publishable.AbsoluteLink.ToString()); + writer.WriteElementString("link", publishable.AbsoluteLink.AbsoluteUri); // ------------------------------------------------------------ // Write enclosure tag for podcasting support From 5d13a237c1637c0582391bebd280ff3bfe924ec9 Mon Sep 17 00:00:00 2001 From: Vladekk Date: Tue, 10 May 2016 18:18:27 +0300 Subject: [PATCH 2/2] Replaced occurrences of AbsoluteLink.ToString to AbsoluteLink.AbsoluteUri in sitemap , feed and trackback logic. This will support non-english languages properly in these links. --- .../Services/Syndication/SyndicationGenerator.cs | 10 +++++----- BlogEngine/BlogEngine.Core/Web/HttpHandlers/SiteMap.cs | 4 ++-- .../Web/HttpHandlers/TrackbackHandler.cs | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs b/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs index d1bd5fc08..dff877e9b 100644 --- a/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs +++ b/BlogEngine/BlogEngine.Core/Services/Syndication/SyndicationGenerator.cs @@ -479,7 +479,7 @@ private static void WriteAtomEntry(XmlWriter writer, IPublishable publishable) writer.WriteEndElement(); writer.WriteStartElement("link"); - writer.WriteAttributeString("href", publishable.AbsoluteLink.ToString()); + writer.WriteAttributeString("href", publishable.AbsoluteLink.AbsoluteUri); writer.WriteEndElement(); writer.WriteStartElement("author"); @@ -498,7 +498,7 @@ private static void WriteAtomEntry(XmlWriter writer, IPublishable publishable) writer.WriteStartElement("link"); writer.WriteAttributeString("rel", "related"); - writer.WriteAttributeString("href", String.Concat(publishable.AbsoluteLink.ToString(), "#comment")); + writer.WriteAttributeString("href", String.Concat(publishable.AbsoluteLink.AbsoluteUri, "#comment")); writer.WriteEndElement(); // ------------------------------------------------------------ @@ -604,7 +604,7 @@ private static void WriteAtomEntry(XmlWriter writer, IPublishable publishable) "wfw", "comment", "http://wellformedweb.org/CommentAPI/", - String.Concat(publishable.AbsoluteLink.ToString(), + String.Concat(publishable.AbsoluteLink.AbsoluteUri, "#comment")); writer.WriteElementString( "wfw", @@ -697,7 +697,7 @@ private static void WriteRssItem(XmlWriter writer, IPublishable publishable) if (post != null) { writer.WriteElementString( - "comments", String.Concat(publishable.AbsoluteLink.ToString(), + "comments", String.Concat(publishable.AbsoluteLink.AbsoluteUri, "#comment")); } @@ -791,7 +791,7 @@ private static void WriteRssItem(XmlWriter writer, IPublishable publishable) "wfw", "comment", "http://wellformedweb.org/CommentAPI/", - String.Concat(publishable.AbsoluteLink.ToString(), + String.Concat(publishable.AbsoluteLink.AbsoluteUri, "#comment")); writer.WriteElementString( "wfw", diff --git a/BlogEngine/BlogEngine.Core/Web/HttpHandlers/SiteMap.cs b/BlogEngine/BlogEngine.Core/Web/HttpHandlers/SiteMap.cs index 7281856d9..236486ecb 100644 --- a/BlogEngine/BlogEngine.Core/Web/HttpHandlers/SiteMap.cs +++ b/BlogEngine/BlogEngine.Core/Web/HttpHandlers/SiteMap.cs @@ -52,7 +52,7 @@ public void ProcessRequest(HttpContext context) foreach (var post in Post.Posts.Where(post => post.IsVisibleToPublic)) { writer.WriteStartElement("url"); - writer.WriteElementString("loc", post.AbsoluteLink.ToString()); + writer.WriteElementString("loc", post.AbsoluteLink.AbsoluteUri.ToString()); writer.WriteElementString( "lastmod", post.DateModified.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)); writer.WriteElementString("changefreq", "monthly"); @@ -63,7 +63,7 @@ public void ProcessRequest(HttpContext context) foreach (var page in Page.Pages.Where(page => page.IsVisibleToPublic)) { writer.WriteStartElement("url"); - writer.WriteElementString("loc", page.AbsoluteLink.ToString()); + writer.WriteElementString("loc", page.AbsoluteLink.AbsoluteUri); writer.WriteElementString( "lastmod", page.DateModified.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)); writer.WriteElementString("changefreq", "monthly"); diff --git a/BlogEngine/BlogEngine.Core/Web/HttpHandlers/TrackbackHandler.cs b/BlogEngine/BlogEngine.Core/Web/HttpHandlers/TrackbackHandler.cs index b8b529a56..b526ce440 100644 --- a/BlogEngine/BlogEngine.Core/Web/HttpHandlers/TrackbackHandler.cs +++ b/BlogEngine/BlogEngine.Core/Web/HttpHandlers/TrackbackHandler.cs @@ -133,7 +133,7 @@ public void ProcessRequest(HttpContext context) postId.Length == 36) { post = Post.GetPost(new Guid(postId)); - this.ExamineSourcePage(url, post.AbsoluteLink.ToString()); + this.ExamineSourcePage(url, post.AbsoluteLink.AbsoluteUri); var containsHtml = !string.IsNullOrEmpty(excerpt) && (RegexHtml.IsMatch(excerpt) || RegexHtml.IsMatch(title) || RegexHtml.IsMatch(blogName));