如何高效的编写与同步博客 (.NET Core 小工具实现)

时间:2021-07-31 14:22:26

一.前言

写博客,可以带给我们很多好处,比如可以让我们结识更多志同道合的人;在写博客过程中去查技术资料或者实践可以让我们对知识的掌握和理解更加深刻;通过博客分享能帮助他人收获分享的快乐等等。写博客真的是一件十分有益的事情,在此我带给大家一种高效的编写以及同步博客的方式,这也是我目前在用的方式。主要分为两部分,一个是编写,一个是同步。

本文讲解编写博客的格式为MarkDown,这种格式可以用非常简洁的语法来进行排版,十分简单,而且绝大多数网站都支持十分方便,推荐使用这种格式。

二.使用 Typora 高效编写博客

Typora 是一款跨平台(Windows/Mac/Linux)的功能强大的MarkDown编辑器,实用性非常高,下面我带大家一起来使用。

下载地址:https://www.typora.io/

首先我们定义一个博客统一存放的地址,我放在I:\Blogs下。

1.设置 Typora

【文件】->【偏好设置】

(1)图片插入

我们在网页复制图片,或者插入本地图片,亦或者使用QQ截图,插入到我们的博客中时,可以通过下面的设置,将目标图片复制到与我们博客同级的assets目录中

如何高效的编写与同步博客 (.NET Core 小工具实现)

比如我们使用QQ截图,然后Ctrl+V直接可以粘贴,然后默认就保存在 asstes中。

(2)默认复制行为

勾选当复制纯文本时复制MarkDown源码,可以让我们在预览模式下依然能方便复制MarkDown源码

如何高效的编写与同步博客 (.NET Core 小工具实现)

(3)设置 自动保存

可以让我们无需经常按Ctrl+S来进行保存

如何高效的编写与同步博客 (.NET Core 小工具实现)

2.常用快捷键

  • Ctrl+/ 快速切换预览和源码模式

  • Ctrl+Shift+` 代码块

  • Ctrl+B 加粗

  • Ctrl+K 超链接

  • Ctrl+Shift+I 图片

本文亦是用此编写:

如何高效的编写与同步博客 (.NET Core 小工具实现)

三.同步

这里的同步主要介绍两种方式:1.同步到github 2.同步到博客园

1.同步到 Github

我们使用Typora编辑器编写的博客可以非常轻松的同步到Github,可以直接使用TortoiseGit等工具上传到我们的Github仓库。

如何高效的编写与同步博客 (.NET Core 小工具实现)

2.同步到博客园

同步到博客园这里介绍一个我使用.NET Core开发的工具,可以快捷的解析我们MarkDown中的图片文件,并进行上传,然后替换为上传的图片url,通过此工具转换以后只需要复制粘贴到博客园即可。

四. .NET Core 小工具实现快捷同步到博客园

1.准备环境

安装.NET Core SDK: https://www.microsoft.com/net/learn/get-started/windows

2.编译Release包

进入shell文件夹,运行publish.bat

可能会引起杀毒软件误报,请允许。

3.创建快捷方式

进入 项目根目录\Publish 文件夹,选中 CnBlogPublishTool.exe,【右键菜单】->【创建快捷方式】

然后进入 项目根目录\shell 文件夹,运行deploy.bat

4.使用

选中一个MarkDown文件,【右键菜单】->【发送到】->【CnBlogPublishTool】,便会开始解析图片并自动上传到博客园。

第一次使用会让您配置博客ID和博客园的用户名密码,密码采用tea加密存储,请放心使用。

5.使用演示

如何高效的编写与同步博客 (.NET Core 小工具实现)

6.说明

  • 程序未加过多的容错机制,请勿暴力测试。比如发送一个非MarkDown文件到程序。

  • 上传图片具有重试机制,重试三次。

  • 只有本地路径的图片才会上传,所有http/https远程图片都会过滤

  • 图片上传完毕以后,会自动转换md内容保存到带cnblog后缀的文件里面

  • 密码错误请到程序根目录删除config.json后重新运行程序,将会让你设置密码

7.将转换的内容直接粘贴到博客园即可

如何高效的编写与同步博客 (.NET Core 小工具实现)

同步完成截图:

如何高效的编写与同步博客 (.NET Core 小工具实现)

六.写在最后

本文所用的博客园快捷同步工具已经开源在Github:https://github.com/stulzq/CnBlogPublishTool

大家如果觉得有用欢迎给我个Star!