不少年之前开始使用markdown写博客的时候,当时博客园的web编辑器还不是那么好用,就特别想有一个优秀的编辑器能够直接发布到博客园的。偶然间发现一个很是好用的MarkWord,能够实现markdown本地编辑后发布到远程的功能,重点是实时预览、图片能够直接Ctrl+C Ctrl+V,写做的过程简直纵享丝滑,不可谓不优秀!html
主要特性:git
软件的原理就很少说了,能够理解为经过编译Markdown
为html
,而后发布;而后图片复制和粘贴的原理就是保存到本地的一个临时文件夹中,发布的时候经过上传API发布上去。软件的体验很是好,我用了很长的一段时间。后来博客园官方对Markdown
有了支持,这种编译方式,会将style等内容一并嵌入,若是本身博客的style常常更换的,很容易形成样式错乱。我就一直琢磨,能不能不发布Html内容,而转为直接发布Markdown源码呢?github
翻看博客园官方的说明,经过meta发布的时候,只要将分类设置为[Markdown]
就能够支持直接发布Markdown源。因而我简单改造了一下,禁用了软件各类style功能,纯粹只发布Markdown,依然保留直接Ctrl+C Ctrl+V的功能。web
if (img != null) { string filePath = Config.imgcacheDir + "\\" + System.IO.Path.GetRandomFileName() + ".png"; img.Save(filePath, System.Drawing.Imaging.ImageFormat.Png); //原来的 //markEdit.textEditor.SelectedText = string.Format("", System.Web.HttpUtility.UrlEncode(filePath).Replace("+", "%20")); //改造 markEdit.textEditor.SelectedText = $".AbsoluteUri})"; }
//直接使用markdown发布 see BLL/BlogsHelper.cs blogsPost.description = Blogs; //开始查找图片并更新到服务器 //HtmlDocument htmlDoc = new HtmlDocument(); WebClient webClient = new WebClient(); //htmlDoc.LoadHtml(blogsPost.description); //var ImgList = htmlDoc.DocumentNode.Descendants("img"); //使用了正则来寻找图片。 var rex = "!\\[[^\\]]+\\]\\([^\\)]+\\)"; var ImgList = Regex.Matches(Blogs,rex); int procCount = 3 + ImgList.Count;
最终效果以下:
c#
当时也顺便迁移了一下到.NET CORE,详细内容请移步迁移WPF项目到.NET Core服务器
最终的程序代码发布到netcore
分支,不过我只作了关键代码的修改,我也用了好久了,编写和发布Markdown是没有问题了,但其余功能我也没有试验过,建议你们编写博文的时候常常保存。markdown
使用netcore分支,在release下直接编译便可,须要.NET CORE 3.1 Desktop SDK
,所以须要VS2019。详细使用方法请阅读原做者的博客。dom
补充:如今博客园的Web Markdown编辑器已经能够支持直接Ctrl+C Ctrl+V上传了,还能自动保存,体验已经很不错了(就差一个实时预览了),本文就是使用Web编辑器编写而成。编辑器
再次感谢原做者的优秀软件!网站