Ejemplo n.º 1
0
        /// <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)
            });
        }