腾讯云COS+PicGO+截图工具+Obsidian+Typora+蚁小二:打造丝滑稳定的Markdown写作和分发环境
背景
很久很久以前,我写过一篇《有道云笔记+Everything+Typora+GitHub图床+PicGo+jsDelivr加速+截图工具——创造丝滑免费的Markdown写作环境》(https://blog.csdn.net/qq_43721542/article/details/9685957),当时的目的是打造一个云同步免费的Markdown写作环境。
现在,我有了新的诉求:打造一个本地丝滑的Markdown写作环境,且输出的文章可以直接复制到博客平台进行发表,甚至可以一键分发到多个博客平台。
于是,研究了如下做法,供大家参考。
工具说明
腾讯云COS
腾讯云COS(Cloud Object Storage)是腾讯云提供的一种稳定、安全、高效、易用的云端存储服务,您可以通过RESTful API接口、控制台、SDK工具等多种方式将数据安全地存储到腾讯云的存储系统上,实现海量数据的存储、备份和归档。
在这里,我们用COS代替之前的GitHub,作为新的图床。
为什么用COS,一是因为COS稳定而且速度很快,而是因为COS性价比极高,50G的存储容量一年不到10块钱。而GitHub在国内访问的速度实在不敢恭维。
腾讯云COS网址:https://console.cloud.tencent.com/cos
PicGO图片上传工具
目的:将图片自动上传到你的GitHub图床,并返回一个Markdown格式的图片地址。
网址:https://github.com/Molunerfinn/PicGo/releases
截图工具
目的:截图并编辑图片。
这里使用Snipaste,网址:https://www.snipaste.com/
Obsidian
目的:只用于管理Markdown文件。
网址:https://obsidian.md/
Typora
目的:只用于编辑Markdown文件(之所以不用Obsidian编辑,是因为我觉得Typora编辑起来更爽哈哈)。
官网:https://typora.io/
蚁小二
目的:用于将写好的文章一键分发到各个博客平台。
官网:https://www.yixiaoer.cn/
首次配置完整演示步骤
腾讯云COS
来到腾讯云“访问管理”控制台(https://console.cloud.tencent.com/cam/capi),点击“访问密钥”-->“API密钥管理“-->“新建密钥”,记录下APPID, SecretId, SecretKey。

来到COS“存储桶列表”,创建存储桶(如果还没用过COS,需要新建COS)。注意:这里要设置访问权限为“公有读私有写”,否则外界无法访问你的URL。

在确认配置之后,就创建完存储桶了。这时,我们需要把“存储桶名称”和“所属地域“的英文名记下来,后面需要使用。

然后,在桶中创建文件夹,这个文件夹就可以用来存储你的图片啦。

至此,COS配置完毕。
PicGO图片上传工具
对于MAC中apple芯片的电脑(M1、M1 pro、M2等),在安装完PicGO打开时可能会遇到提示文件损坏的问题。
这时我们我要打开终端输入这两行命令:
sudo spctl --master-disable
xattr -cr /Applications/PicGo.app
sudo spctl --master-disable 这条命令是用来关闭Mac的Gatekeeper功能的。Gatekeeper是Mac系统中用来防止用户运行恶意软件的一种安全机制。默认情况下,它只允许用户从App Store和已知开发者处安装应用。这条命令可以暂时关闭这个功能,允许从任何来源安装应用。sudo是一个在Unix和类Unix系统中的命令,用来以超级用户的身份执行命令。spctl是Gatekeeper的命令行工具,--master-disable是禁用Gatekeeper的选项。
xattr -cr /Applications/PicGo.app 这条命令是用来清除一个文件或目录的扩展属性的。在Mac系统中,某些文件会被系统自动添加扩展属性,比如下载的程序会被添加一个标记,表明这个程序是从Internet上下载的。这个标记会导致Gatekeeper阻止这个程序的运行。xattr是一个命令行工具,用来查看和修改文件的扩展属性,-c选项是清除所有属性,-r选项是递归处理目录。/Applications/PicGo.app是要处理的目录。
这两条命令通常一起使用,用来允许从未知来源安装的程序在Mac上运行。
打开PicGO后,选择“图床设置”-->“腾讯云COS”,根据之前在COS中记录的信息对应填写:

可以自定义配置一些PicGo设置,比如快捷键、上传后自动复制URL等:

至此,PicGO配置完毕。
截图工具
我使用的是Snipaste,好处是在截图当时有很多好用的编辑功能


当然,用其他的也可以,主要就是把需要上传到图床的图片放到我们电脑的剪切板中,随时准备上传。
Obsidian
Obsidian其实是一个非常好用的笔记软件,用来构建自己的知识图谱非常合适
(奈何我还没完全学会它的使用,所以我这里用来管理.md文件)

Typora
管理不是Typora的强项,编辑才是,因此,我选择使用Typora作为我认为完美的Markdown编辑器。
在这里要说一下相关的配置,要结合PicGo来无缝获取上传图片后的markdown格式,需要配置如下:

这样配置之后,我们使用Snipaste得到的截图,就可以直接粘贴到Typora了(Typora会为我们自动上传该截图),得到的就是一个标准的Markdown图片格式,如:

蚁小二
我们在本地编辑完成Markdown文件后,“蚁小二”这样的一键分发平台就派上用场了。它能将我们的文章一键发布到多个平台,如:知乎、B站、CSDN、微信公众号等。
因为免费版最多支持5个不同的平台,我就绑定了5个平台的账号(我觉得差不多也够用了)
(如果大家有更好用的一键分发软件,也欢迎评论推荐哈)

实际上它支持很多平台:

我们可以在“一键发布”页面进行发布
首选选择需要发布的账号:

在Typora中将想要发布的文章Ctrl+A全选后粘贴到“一键发布”中的编辑器:

填写各个平台的发布设置后点击下面的”发布“,等待发布完成即可。
使用总结(简单又丝滑的编辑步骤)
配置完成后,我们来一个使用的示例来结尾:
使用Obsidian创建一个新的.md文件
使用Typora打开新建的.md文件
使用截图工具截取想要放到文章中的图片,期间可以进行图片编辑
直接ctrl+v粘贴到Typora
最后,到蚁小二进行一键发布到各平台
相关文章:
腾讯云COS+PicGO+截图工具+Obsidian+Typora+蚁小二:打造丝滑稳定的Markdown写作和分发环境
背景 很久很久以前,我写过一篇《有道云笔记EverythingTyporaGitHub图床PicGojsDelivr加速截图工具——创造丝滑免费的Markdown写作环境》(https://blog.csdn.net/qq_43721542/article/details/9685957),当时的目的是打造一个云同…...
LeetCode--HOT100题(18)
目录 题目描述:73. 矩阵置零(中等)题目接口解题思路1代码解题思路2代码 PS: 题目描述:73. 矩阵置零(中等) 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都…...
ES6的语法兼容IE浏览器
案例1 zdsxData.zdsxData.forEach(el>{let str <tr> <td><a href${el.url} target"_blank"><font color"#79EEFF">${el.sxms}</font></a></td> <td>${el.gjjd}</td> <td>${el.zrr}<…...
【opencv学习】鼠标回调函数、鼠标控制画矩形
#include <iostream> #include <opencv2/opencv.hpp> using namespace cv; #define WinDow "程序窗口"void MouseHandle(int event, int x, int y, int flags, void* param);//鼠标回调函数 void Drawrectangle(cv::Mat& img, cv::Rect box);//矩形绘…...
Typescript面试题
文章目录 了解过TS吗?使用ts写一个对象属性约束说一下typescript中的泛型如何在TS中对函数的返回值进行类型约束ts和js相比有什么区别 了解过TS吗? ts是一种基于静态类型检查的强类型语言 let num:number20 console.log(num) console.log("str&qu…...
GB28181智能安全帽方案探究及技术实现
什么是智能安全帽? 智能安全帽是一种集成先进科技的安全帽,可基于GB28181规范,适用于铁路巡检、电力、石油化工等高风险行业的作业人员,以及消防、救援等紧急情况下的安全防护。 智能安全帽通常具有以下功能: 实时…...
【css】解决元素浮动溢出问题
如果一个元素比包含它的元素高,并且它是浮动的,它将“溢出”到其容器之外:然后可以向包含元素添加 overflow: auto;,来解决此问题: 代码: <!DOCTYPE html> <html> <head> <style>…...
SOC FPGA之流水灯设计
一、DS-5简介 Altera Soc EDS开发套件的核心是Altera版ARM Development Studio 5(DS-5)工具包,为SoC器件提供了完整的嵌入式开发环境、FPGA自适应调试和对Altera工具的兼容。 1.1 DS-5 eclipse破解 首先下载破解器 然后进入cmd运行,进入到破解器所在文…...
无涯教程-Lua - Iterators(迭代器)
迭代器是一种构造,使您可以遍历所谓的集合或集合的元素。在Lua中,这些集合通常引用表,这些表用于创建各种数据结构(如数组)。 通用迭代器 通用的 for 迭代器提供集合中每个元素的键值对。下面给出一个简单的示例。 array{"Lua",…...
HTML+CSS+JavaScript:实现B站评论发布效果
一、需求 1、用户输入内容,输入框左下角实时显示输入字数 2、为避免用户输入时在内容左右两端误按多余的空格,在发送评论时,检测用户输入的内容左右两端是否带有空格,若有空格,发布时自动取消左右两端的空格 3、若用…...
实战 - 利用 ThreadLocal 线程局部变量实现数据缓存
文章目录 1. 利用 ThreadLocal 缓存 AssetBranchCache 数据1. 定义 AssetBranchCache 类2. 定义 BranchContext 类操作 AssetBranchCache 对象3. 配置拦截器实时更新和清除缓存数据4. 定义 SaasThreadContextDataHolderBranch 类持有 AssetBranchCache 对象5. 定义 SaasThreadC…...
wxwidgets Ribbon使用简单实例
// RibbonSample.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <wx/wx.h> #include "wx/wxprec.h" #include "wx/app.h" #include "wx/frame.h" #include "wx/textctrl.h" #include "…...
2023年第四届“华数杯”数学建模思路 - 案例:最短时间生产计划安排
文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 0 赛题思路 (赛题出来以后第一时间在CSDN分享) 最短时间生产计划模型 该模型出现在好几个竞赛赛题上&#x…...
LeetCode404. 左叶子之和
404. 左叶子之和 文章目录 [404. 左叶子之和](https://leetcode.cn/problems/sum-of-left-leaves/)一、题目二、题解方法一:递归方法二:迭代 一、题目 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3,9…...
Nginx 高性能内存池 ----【学习笔记】
跟着这篇文章学习: c代码实现一个高性能内存池(超详细版本)_c 内存池库_linux大本营的博客-CSDN博客https://blog.csdn.net/qq_40989769/article/details/130874660以及这个视频学习: nginx的内存池_哔哩哔哩_bilibilihttps://w…...
iOS--frame和bounds
坐标系 首先,我们来看一下iOS特有的坐标系,在iOS坐标系中以左上角为坐标原点,往右为X正方向,往下是Y正方向如下图: bounds和frame都是属于CGRect类型的结构体,系统的定义如下,包含一个CGPoint…...
docker logs 使用说明
docker logs 可以查看某个容器内的日志情况。 前置参数说明 c_name容器名称 / 容器ID logs 获取容器的日志 , 命令如下: docker logs [options] c_name option参数: -n 查看最近多少条记录:docker logs -n 5 c_name--tail与-n 一样 &#…...
Ceph入门到精通-Ceph PG状态详细介绍(全)
本文主要介绍PG的各个状态,以及ceph故障过程中PG状态的转变。 Placement Group States(PG状态) creating Ceph is still creating the placement group. Ceph 仍在创建PG。activating The placement group is peered but not yet active.…...
【数据结构】二叉树、二叉搜索树、平衡二叉树、红黑树、B树、B+树
概述 二叉树(Binary Tree):每个节点最多有两个子节点(左子节点和右子节点),没有限制节点的顺序。特点是简单直观,易于实现,但查找效率较低。 二叉搜索树(Binary Search…...
【JVM】(二)深入理解Java类加载机制与双亲委派模型
文章目录 前言一、类加载过程1.1 加载(Loading)1.2 验证(Verification)1.3 准备(Preparation)1.4 解析(Resolution)1.5 初始化(Initialization) 二、双亲委派…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
