我使用Typehco搭建博客,这是一个支持Markdown语言且开源的博客程序。就如同官网上所介绍的一样:轻量高效先进稳定简洁友好

为了让自己将精力集中在「写博」本身,同时也为了有一个「优雅」的写作体验。在使用Markdown语言来撰写文章的前提下,编辑器与图片问题的解决就成了相对复杂一些的事情。

在搜寻了一番后,我所选取的组合是:Typora + uPic + 七牛云。选择这个方案的原因有以下几点:

  • 低成本,目前其实是零成本
  • 够优雅,使用过程顺畅便捷
  • 私有化,数据都是自己的


相关链接

Typora:「官网」「Typora 完全使用详解

uPic:「官网」「Github」「uPic:支持自定义,一款免费而强大的Mac图床客户端

七牛云:「官网」「对象存储

低成本

博客目前并不是「开源」的工具,所以还是需要适当的进行「节流」。在确保服务可靠体验优雅的前提下,成本自然是越低越好。Typora目前仍在测试期间,全部功能可免费使用uPic则是作者开源在Github上了,也可免费使用。这里唯一值得说一说的是七牛云的对象存储。

七牛云很友好的对实名认证过的用户提供了10G的对象存储额度,具体的信息与超出后的资费可以在「产品价格」这里看到。这个额度对于一般的个人博客也是足够了的,所以在初期使用七牛云是一个几乎零成本的方式。只是有两个地方需要注意以下:

一个是测试域名的问题。七牛云对自动生成的七牛系列域名定义为测试域名,同时测试域名超过30个自然日也将被系统收回,无法作为长期图床使用,详见「测试域名使用规范」。这个解决方案是绑定自己的已备案域名。我的博客建立在阿里云上,原本也是需要备案的,分出一个二级域名也并没有增加额外的成本。况且现在在阿里云上进行域名备案也非常的便捷,只是时间略长。

再一个是通信协议的问题,七牛云配置https访问所产生的用量并不计入免费额度,这个其实对个人博客来说也影响不大,就使用http就可以了。


够优雅

配置过程优雅

  1. 七牛云的操作
    1. 在七牛云对象存储中创建公开的存储空间Bucket,命名为Myname
    2. 绑定已备案过的域名cdn.Mydomain.com,并做好CNAME解析;
    3. 在七牛云密钥管理中获取到你的AccessKey和SecretKey;
  2. uPic的操作
    1. 在Mac上下载并安装好 uPic ,打开偏好设置;
    2. 在图床中添加七牛云,并输入你的空间名、AccessKey、SecretKey以及域名信息;
    3. 保存即可;
  3. 为了增强体验,针对 uPic 我还做了如下配置
    1. 域名后的文件网址,我配置为http://cdn.Mydomain.com/blog_image/日期-随机#shadow,文件夹与文件名是为了以后方便管理,而#shadow的后缀则是因为我使用的博客主题,添加这个后可以自动添加阴影效果;
    2. 输出格式设置为 Markdown ,这样每次上传后会自动复制为Markdown格式,直接粘贴在 Typora 中即可,当然这里如果我需要URL或其它格式时也可以手动调整;
    3. 上传前压缩图片我暂且设置为 20% ,这个是因为我的博客配图大多是来自于Pexels,而下载默认的尺寸通常比较大,20% 压缩后在阅读显示上一般不会有什么问题。而如果我的配图从其他地方来的话,我会根据尺寸的大小再进行手动调整。
  4. 七牛云中一些可能会用到的配置(我并未使用)
    1. 对象存储中的图片样式,可以自动裁剪、添加水印以及自动瘦身等样式处理,如果图片格式大量保持一致时可使用
    2. 对象存储中的生命周期,可将图片定期删除或转为低频存储,这样能够降低资费,如果已超出了免费额度,不妨考虑使用
    3. 融合CDN中域名管理下的域名防盗链,如果你的图片资源被到处转载使用,很容易超出了免费额度,如果有必要也可以开启

使用过程优雅

  1. 开始写一篇新文章
    1. 我会先在Typora中使用#系列,先列好初步的一二三级标题
    2. 然后根据标题写好主体内容,该引用的引用>,该列表的列表-
    3. 当然在写作的过程中,加粗**、链接都在同步进行[]()
    4. 图片我会先使用一小段文字占位,说明这里添加的是什么图片
  2. 插入并上传图片
    1. 主体完成后,我会整体浏览一遍,并准备好图片下载到本地
    2. 根据全文的顺序,逐个将图片拖到菜单栏上uPic图标处上传并替换文章中的占位文字
    3. 复制全文(Typora 可设置直接复制为 Markdown 源码),并粘贴至博客后台,补充标题、标签、分类、主图等其他信息后发布
  3. 本地「修改」与「锁住」文章
    1. 当发现已发布的文章需要修改时,我会先修改本地 Typora 中的内容,再复制粘贴至线上,手动同步
    2. 当内容无误暂时不需要修改时,我会锁定本地 Typora 中的文章,并移动到「已发布」文件夹下,避免误操作,需要修改时再开启即可


私有化

数据内容的私有化是我目前使用各类应用和服务的一个基本考虑点。从过去数年中,发生了无数优秀的互联网产品关闭服务的例子。历史的教训告诉我,随着互联网自身的发展,任何互联网产品都是有可能消亡的,大厂也不例外。对于一些想要长久使用的东西,当你用了「网络服务」亦或者「本地工具」后,一定要考虑如何离开的事情。

无论是网络服务还是本地应用,能不强依赖其自身,能够适用于互联网的基础设施,才是我所信赖的。

uPic其实不用多说,本身只是一个上传工具,只是能较为方便的配置上传目录和后缀,这个很多同类产品也支持,甚至于我手动也可以实现

而选择的Typora,是因为它足够纯粹,并没有这样那样的云服务、文件管理机制,只是将内容直接存储为一个个的MD文件,并使用操作系统本身的文件管理建立文件夹进行分类。我可以自由的复制、剪切、同步等操作,无需考虑在不同的Markdown之间的适应性问题。这个是我所信赖的。

而选择七牛云,确切的说是先选择了对象存储,又因为成本的原因使用了七牛云。对象存储在我理解来其实就是互联网的基础设施「服务器」-「云服务器」-「用于对象存储的云服务器」的演变。这样理解虽然不一定准确,但支持内容迁移和批量导出让我放宽了一些心。

《七牛云对象存储的批量下载与空间备份》

《七牛云对象存储中的数据迁移至阿里云对象存储OSS》

再加上,七牛云对象存储「强制」绑定域名其实也挺好,我可以将图片或其他下载资源统统的使用cdn.Mydomain.com来访问,这样当我未来从七牛云对象存储迁移到阿里云对象存储时,甚至于一个个普普通通的云服务器时,所有发布在博客内的图片链接都不需要更换。也降低了未来可能的迁移成本。


两个不重要的小事情

  • 七牛云对象存储内的内容,为了方便以后的管理,我使用文件夹(文件前缀)进行简单的区分,具体的规则是
    • 博客主题所用的图片放在blog_theme
    • 博客文章所用的图片放在blog_image
    • 博客下载所用的文件放在blog_file
  • 有一个用于七牛云的小工具QBoxMac App Store也可以下载到,能够简单管理的不同存储空间,也可以批量下载文件。但作者已许久未更新,不知能不能长期使用。

以上,就是我选择编辑器、图片上传与图床服务的原因以及使用方法。不知能否帮到你?