/// <summary> /// 取得文章細節 /// </summary> /// <param name="id"></param> /// <returns></returns> public ArticleModel GetArticleDetail(int id) { var imageUrl = @"/Blog/GetImage"; var blogArtical = _blogDAL.GetFirstArticle(id); var dir = Path.GetDirectoryName(blogArtical.FilePath); var mdContent = File.ReadAllText(Path.Combine(_hostingEnvironment.ContentRootPath, blogArtical.FilePath)) .Split("\r\n") .Select(x => { if (!Regex.IsMatch(x, @"\!\[\w+\]\(\.\\\w+\w+\\\w+\.jpg\)")) { return(x); } var start = x.IndexOf('(') + 2; var length = x.IndexOf(')') - start; var path = x.Substring(start, length); return(x.Replace($".{path}", $"{imageUrl}?imagePath={HttpUtility.UrlEncode(dir + path)}")); }).ToList(); return(new ArticleModel { Title = blogArtical.Title, CreateTime = blogArtical.CreateTime.ToString("yyyy/MM/dd"), MdContent = string.Join("\r\n", mdContent) }); }