• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

博客园Markdown写作利器MarkWord

C# 波多尔斯基 2120次浏览 0个评论

很多年以前开始使用markdown写博客的时候,当时博客园的web编辑器还不是那么好用,就特别想有一个优秀的编辑器可以直接发布到博客园的。偶然间发现一个非常好用的MarkWord,可以实现markdown本地编辑后发布到远程的功能,重点是实时预览、图片可以直接Ctrl+C Ctrl+V,写作的过程简直纵享丝滑,不可谓不优秀!

主要特性:

  • 支持Markdown编写实时预览
  • 支持样式自定义与切换
  • 支持图片直接复制与粘贴
  • 支持一键发布到博客园等支持metablog协议的网站
  • 支持自定义类别
  • 支持发布到草稿

软件的原理就不多说了,可以理解为通过编译Markdownhtml,然后发布;然后图片复制和粘贴的原理就是保存到本地的一个临时文件夹中,发布的时候通过上传API发布上去。软件的体验非常好,我用了很长的一段时间。后来博客园官方对Markdown有了支持,这种编译方式,会将style等内容一并嵌入,如果自己博客的style经常更换的,很容易造成样式错乱。我就一直琢磨,能不能不发布Html内容,而转为直接发布Markdown源码呢?

改造

翻看博客园官方的说明,通过meta发布的时候,只要将分类设置为[Markdown]就可以支持直接发布Markdown源。于是我简单改造了一下,禁用了软件各种style功能,纯粹只发布Markdown,依然保留直接Ctrl+C Ctrl+V的功能。

图片上传

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("![img](file:///{0})", System.Web.HttpUtility.UrlEncode(filePath).Replace("+", "%20"));
    //改造
    markEdit.textEditor.SelectedText = $"![img]({new Uri(filePath).AbsoluteUri})";
}

添加[Markdown]分类

//直接使用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;

最终效果如下:
博客园Markdown写作利器MarkWord

当时也顺便迁移了一下到.NET CORE,详细内容请移步迁移WPF项目到.NET Core

最终的程序代码发布到netcore分支,不过我只做了关键代码的修改,我也用了很久了,编写和发布Markdown是没有问题了,但其他功能我也没有试验过,建议大家编写博文的时候经常保存。

使用说明

使用netcore分支,在release下直接编译即可,需要.NET CORE 3.1 Desktop SDK,因此需要VS2019。详细使用方法请阅读原作者的博客。

补充:现在博客园的Web Markdown编辑器已经可以支持直接Ctrl+C Ctrl+V上传了,还能自动保存,体验已经很不错了(就差一个实时预览了),本文就是使用Web编辑器编写而成。

资源

  • 项目代码原地址:MarkWord
  • 原作者博客:twzy的博客园
  • 我FORK的netcore分支:MarkWord

再次感谢原作者的优秀软件!


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明博客园Markdown写作利器MarkWord
喜欢 (0)

您必须 登录 才能发表评论!

加载中……