当前位置: 首页 > news >正文

沧州网站制作报价最新实时新闻

沧州网站制作报价,最新实时新闻,深圳做网站的公司排名,阿里云域名注册登录目录 需求 文本编码检测 Markdown→HTML 注意 实现 需求 Markdown是一种文本格式;不被浏览器支持;编写一个在服务器端把Markdown转换为HTML的中间件。我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上,并且在它之前运…

目录

需求

文本编码检测

Markdown→HTML

注意

实现


需求

  1. Markdown是一种文本格式;不被浏览器支持;编写一个在服务器端把Markdown转换为HTML的中间件。
  2. 我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上,并且在它之前运行,所有的*.md文件都被放到wwwroot文件夹下,当我们请求wwwroot下其他的静态文件的时候,StaticFiles中间件会把它们返回给浏览器,而当我们请求wwwroot下的*.md文件的时候,我们编写的中间件会读取对应的*.md文件并且把它们转换为HTML格式返回给浏览器。

文本编码检测

Nuget:Install-Package UTF.Unknown

DetectionResult result = CharsetDetector.DetectFromStream(stream);
string charset = result.Detected.EncodingName

CharsetDetector/UTF-unknown: Character set detector build in C# - .NET 5+, .NET Core 2+, .NET standard 1+ & .NET 4+https://github.com/CharsetDetector/UTF-unknownhttps://github.com/CharsetDetector/UTF-unknownhttps://github.com/CharsetDetector/UTF-unknownhttps://github.com/CharsetDetector/UTF-unknown

Markdown→HTML

Nuget:Install-Package MarkdownSharp

Markdown markdown = new Markdown();
string html = markdown.Transform(mdText);

注意

app.UseMiddleware<MarkdownMiddleware>();需在app.UseStaticFiles();之前注册,如果先注册了静态文件中间件,那么所有对静态文件的请求都会直接由静态文件中间件处理,而不会经过你的自定义中间件。

app.UseMiddleware<MarkdownMiddleware>();
//配置服务器为静态文件提供服务
app.UseStaticFiles();

实现

public class MarkdownMiddleware
{private readonly RequestDelegate _next;private readonly IWebHostEnvironment hostEnv;public MarkdownMiddleware(RequestDelegate next, IWebHostEnvironment hostEnv){_next = next;this.hostEnv = hostEnv;}public async Task InvokeAsync(HttpContext context){//获取请求路径var path = context.Request.Path.Value;//判断请求路径是否以.md结尾if (!path.EndsWith(".md", true, null)){await _next(context);return;}//判断请求路径是否存在var file = hostEnv.WebRootFileProvider.GetFileInfo(path);if (!file.Exists){await _next(context);return;}//读取文件流using var stream = file.CreateReadStream();//UTF.Unknown检测文件编码,获取检测结果DetectionResult result = CharsetDetector.DetectFromStream(stream);string charset = result.Detected.EncodingName ?? "UTF-8";//流的位置重置stream.Position = 0;//读取文件内容,并指定编码using StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(charset));string mdText = await reader.ReadToEndAsync();//将Markdown转换为HTMLMarkdown markdown = new Markdown();string html = markdown.Transform(mdText);//设置响应头context.Response.ContentType = "text/html;charset=UTF-8";await context.Response.WriteAsync(html);}
}
http://www.15wanjia.com/news/34465.html

相关文章:

  • 传智播客网站开发全套视频教程郑州网站建设公司排名
  • 高邑做网站宁波seo关键词
  • 网站打不开404营销策划与运营团队
  • 网站建设开发公司地址推广软件赚钱
  • 专业做高端网站seo关键词首页排名代发
  • 国外什么推广网站好58同城如何发广告
  • 眼科医院网站设计怎么做百度app免费下载安装
  • 小公司如何做网站打开百度一下
  • 网站图片自动轮换怎么做的关键词优化公司排名
  • 日本做瞹瞹嗳视频网站长尾关键词
  • 天蝎网站建设优化大师最新版下载
  • WordPress电脑与手机网络优化工程师是干什么的
  • 用wordpress做购物网站发布广告的平台免费
  • b2b的两种网站类型seo推广是做什么
  • 做网站可以用中文域名备案嘛无锡seo优化
  • 网站建设推广优化排名品牌推广活动策划方案
  • 学做蛋糕网站a站
  • 外贸网站如何做seo网络营销课程感悟
  • 台州卫浴网站建设网络营销成功的案例及其原因
  • 做gif动图的网站犯法吗线上营销有哪些
  • 乐清微网站建设seo营销方法
  • 做网站打印费复印费清单网域名解析ip查询
  • 网站建设技术培训镇江关键字优化品牌
  • 泸州市住房和城乡建设网站seo推广论坛
  • 北京住房和城乡建设委员会网站公告宁波企业seo服务
  • 千库网下载抖音搜索seo软件
  • 学网页设计课程快速排名优化公司
  • 临沂网站建设微信独立站建站需要多少钱
  • a做爰视频免费网站培训方案
  • 网站建设与管理课程心得体会巩义网络推广外包