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

关于推广网站的标题网页工具栏

关于推广网站的标题,网页工具栏,龙岗英文网站建设,黄石网站建设黄石前言又是好久没写博客了其实也不是没写#xff0c;是最近在「做一个博客」#xff0c;从2月21日开始#xff0c;大概一个多星期的时间#xff0c;疯狂刷进度#xff0c;边写代码边写了一整系列的博客开发笔记#xff0c;目前为止已经写了16篇了#xff0c;然后上3月之后… 前言又是好久没写博客了其实也不是没写是最近在「做一个博客」从2月21日开始大概一个多星期的时间疯狂刷进度边写代码边写了一整系列的博客开发笔记目前为止已经写了16篇了然后上3月之后工作有点忙加上有点沉迷原神然后进度就暂时慢下来了事实证明做什么事情一旦停下来就会产生惰性于是停了这么久我终于下定决心继续更新这次开发的博客用的是C#语言搭配.netcore技术栈前端继续用我比较熟悉的Bootstrap做布局然后稍微折腾一下管理端用的是Vue…… 过程中总能遇到一些技术问题除了在博客开发笔记系列里记录还是把一些普适性的解决方案单独拿出来。我的博客采用程序员最爱的Markdown语法书写而众所周知markdown有一个缺点就是关联图片资源麻烦因为我的博客需要实现本地用Typora写的Markdown文档导入所以解析markdown文档并处理导入图片资源是一个绕不过的坎。如题本文介绍的是C#解析Markdown文档。Markdig库之前我用Python实现过解析Markdown文档Python生态里相关的库太多了有很多很好的选择之前我写的用Python实现解析Markdown的文章python实现解析markdown文档中的图片并且保存到本地~然而C#这边基本没啥可选的官方的Markdown库也标记为弃用状态推荐迁移到Markdig这个库……所以就没得选了只能用这个Markdig。官方介绍Markdig is a fast, powerful, CommonMark compliant, extensible Markdown processor for .NET.其实这个库也不难用但注意官方介绍里有这么一句话NOTE: The repository is under construction. There will be a dedicated website and proper documentation at some point!喵的就是完全没文档用法基本靠猜和啃源码 ヽ(ー_ー)ノ为了实现这个markdown图片导入我只能硬着头皮搞起来实现思路Markdig有一个管道机制举个例子的伪代码如下var pipeline  new MarkdownPipelineBuilder().UseExt1().UseExt2().UseExt3().Build(); var result  Markdown.ToHtml(This is a text with some *emphasis*, pipeline);可以在解析Markdown过程中对Markdown文档做一些修饰处理一开始我想到自己写一个管道来实现将Markdown里的图片链接做替换处理然而可能因为太菜看了好几个官方的管道代码也没琢磨出怎么实现我要的效果直到我回想起官方介绍里的一个关键词CommonMark compliant就是说这玩意是兼容CommonMark 的灵光一闪Markdig因为是新项目还没文档那作为老项目的CommonMark总有文档吧于是我去找到了CommonMark.NET项目一看果然有文档虽然两者的API并不完全一致但经过我的半蒙半猜的探索终于是把要的功能搞定了~ (▽)~*实现代码终于上代码啦~首先读取一个Markdown文档得到MarkdownDocument对象// 引入需要用到的命名空间 using Markdig; using Markdig.Renderers.Normalize; using Markdig.Syntax; using Markdig.Syntax.Inlines;var filepath  temp/blog/机器学习/多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.md; var md  File.ReadAllText(filepath); var document  Markdown.Parse(md);这个文档的部分内容如下## 前言 前段时间无聊回坑玩《开罗拉面店》这是一款模拟经营类的小游戏不管是画风还是游戏性都很对我胃口。![](多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.assets/8869373-ea70bbc1e5c28b62.png)![](多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.assets/8869373-3dd13511e9063800.png)![](多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.assets/8869373-8fcc0475f92cfc84.png)里面有一个玩法是拉面店布局就给你一块地还有几家店铺你可以随便铺随便摆当然肯定是摆的越多家店铺越好。![](多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.assets/8869373-f2c6578cb8f77c31.png)我一开始玩的时候也没想那么多随便摆了摆就完事了但玩到后期人气上不去我就突发奇想能不能把所有店铺摆进去或者能不能尽可能多地去铺满这块地Markdig会把Markdown文档解析成一个文档树接下来可以像DOM操作那样遍历文档节点了~下面的代码是找出Markdown中的图片链接节点并给图片链接加上前缀foreach (var node in document.AsEnumerable()) {if (node is ParagraphBlock { Inline: { } } paragraphBlock) {foreach (var inline in paragraphBlock.Inline) {if (inline is LinkInline {IsImage: true} linkInline) {// 这里就是图片链接了// 实现给图片链接加上前缀linkInline.Url  $http://127.0.0.1:5038/assets/blog/{linkInline.Url};Console.WriteLine(linkInline.Url);}}} }然后把修改完的Markdown文档重新输出using (var writer  new StringWriter()) {var render  new NormalizeRenderer(writer);render.Render(document);Console.WriteLine(writer.ToString()); }最终实现的效果就是这样## 前言前段时间无聊回坑玩《开罗拉面店》这是一款模拟经营类的小游戏不管是画风还是游戏性都很对我胃口。![](http://127.0.0.1:5038/assets/blog/多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.assets/8869373-ea70bbc1e5c28b62.png)![](http://127.0.0.1:5038/assets/blog/多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.assets/8869373-3dd13511e9063800.png)![](http://127.0.0.1:5038/assets/blog/多个约束条件下的二维装箱问题——寻找《开罗拉面店》最优布局.assets/8869373-8fcc0475f92cfc84.png)里面有一个玩法是拉面店布局就给你一块地还有几家店铺你可以随便铺随便摆当然肯定是摆的越多家店铺越好。后续能实现把markdown文档里的图片链接拿出来那后续的图片导入、链接替换就好办了当然这是博客开发笔记里的内容本文就不写了。C#语言很不错可惜第三方库的生态还是差了点这个问题如果我用Python的话早就解决了但C#的话就只能折腾我甚至一度想要自己造个轮子来解析了……其实应该不难我想到的办法就是每一行遍历文档然后用正则表达式把图片链接匹配出来后续处理完成再用正则做替换不过不太优雅就是了在这个写代码靠copy的时代还是要有点追求不然跟咸鱼有什么区别呢……然后再唠一下最近在搞的好玩的东西受俄乌战争警醒的「去Windows化」寻找国内的微信替代品「去腾讯化」OK接下来应该会开始更新博客开发笔记系列文章~(*^▽^*)参考资料CommonMark.NET Wikihttps://github.com/Knagis/CommonMark.NET/wikiMarkdig项目主页https://github.com/xoofx/markdig相关issueshttps://github.com/xoofx/markdig/issues/599相关源码https://github.com/xoofx/markdig/blob/master/src/Markdig/Renderers/Normalize/NormalizeRenderer.cs微软文档https://docs.microsoft.com/en-us/windows/communitytoolkit/parsers/markdownparserhttps://www.songshizhao.com/blog/blogPage/1044.html
http://wiki.neutronadmin.com/news/374548/

相关文章:

  • 网站建设明细价单wordpress 一键转载
  • 百度网盟 网站定向投放那片海dede织梦源码企业网络公司工作室网站模板源码模板php
  • 网站改版需要怎么做网站建设制作设计seo优化湖北
  • 最好网页游戏网站广州平面设计公司有哪些
  • asp网站怎么做404页面跳转wordpress 七牛视频
  • asp网站攻击ajax做购物网站
  • 政务网站建设工作计划结尾泰安建设局网站
  • 商城网站模板开发一个oa系统多少钱
  • 广州做蛋糕的网站pt网站怎么下载与做
  • 网站建设项目心得体会代运营公司的套路
  • 专门做汽车配件保养的网站建设建设网站的
  • 网站备案流程及资料wordpress 付费主题 高级功能编辑器
  • 电视台做网站还是APP网站游戏入口
  • 阿米纳网站建设网站开发项目详细计划
  • 遵义市住房和城乡建设局官方网站6做网站的知识
  • 深圳做网站开发公司酒店 网站构建
  • 滕州网站建设推广网站建设用那个软件
  • 大良营销网站建设价格信息服务平台有哪些
  • 在Vs中做网站接口网站开发老是弹广告
  • 推广型网站免费建设响应式网站建设合同
  • 建设银行金山支行网站邢台建一个网站多少钱
  • 教师网站建设企业实践总结地图上如何添加自己公司的地址
  • 广州网站seo今天济南刚刚发生的新闻
  • 长春火车站电话人工服务网页特效源码网站
  • 我想在阿里巴巴网站开店 怎么做深圳物流公司排名
  • 上海的网站设计公司价格做电商与做网站的区别
  • 什么网站做设计可以赚钱佛山骏域网站建设
  • 惠州手机网站商城建设h5响应式 wordpress
  • 物流信息网站建设南宁网站seo排名优化
  • 做网站起什么题目简述网站的建设流程图