Skip to content

Commit 11b9f17

Browse files
authoredApr 2, 2021
Merge pull request #172 from jmalarcon/master
Enhanced Post.FirstImgSrc method to really find the first image
2 parents 7f695b4 + 739d681 commit 11b9f17

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed
 

‎BlogEngine/BlogEngine.Core/Post.cs

+13-13
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Linq;
99
using System.Net.Mail;
1010
using System.Text;
11+
using System.Text.RegularExpressions;
1112
using System.Web;
1213

1314
using BlogEngine.Core.Data.Models;
@@ -694,28 +695,27 @@ public bool IsVisibleToPublic
694695
}
695696

696697
/// <summary>
697-
/// URL of the first image in the post, if any
698+
/// URL of the first image in the post, if any.
699+
/// If there's no first image, returns the URL to "images/defaultImg.jpg" in the current theme used in the blog
698700
/// </summary>
699701
public string FirstImgSrc
700702
{
701703
get
702704
{
703-
int idx = Content.IndexOf("<img src=");
704-
if (idx > 0)
705+
string srcValue = null;
706+
if (!string.IsNullOrEmpty(content))
705707
{
706-
try
708+
Match match = Regex.Match(content, @"<img\s+?.*?src=('|"")(.*?)\1.*?>", RegexOptions.Multiline | RegexOptions.IgnoreCase);
709+
if (match.Success)
707710
{
708-
idx = idx + 10;
709-
var idxEnd = Content.IndexOf("\"", idx);
710-
if (idxEnd > idx)
711-
{
712-
var len = idxEnd - idx;
713-
return Content.Substring(idx, len);
714-
}
711+
srcValue = match.Groups[2].Value;
715712
}
716-
catch (Exception) { }
717713
}
718-
return "";
714+
if (string.IsNullOrEmpty(srcValue))
715+
{
716+
srcValue = Utils.RelativeWebRoot + "Custom/Themes/" + BlogSettings.Instance.Theme + "/images/defaultImg.jpg";
717+
}
718+
return srcValue;
719719
}
720720
}
721721

‎BlogEngine/BlogEngine.Core/Properties/AssemblyInfo.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020
[assembly: ComVisible(false)]
2121
[assembly: AllowPartiallyTrustedCallers]
2222
[assembly: AssemblyVersion("3.3.8.0")]
23-
[assembly: SecurityRules(SecurityRuleSet.Level1)]
23+
[assembly: SecurityRules(SecurityRuleSet.Level1)]

0 commit comments

Comments
 (0)
Please sign in to comment.