使用 Typora + PicGo + Gitee/GitHub 构建 Markdown 图床技术方案
使用 Typora + PicGo + Gitee/GitHub 构建 Markdown 图床技术方案
Author | Date | Version | Note |
---|---|---|---|
Tao Wang | 2025-04-24 | V1.0 | Release the document. |
文章目录
- 使用 Typora + PicGo + Gitee/GitHub 构建 Markdown 图床技术方案
- 前言
- 核心概念解析
- 图床技术原理
- 环境搭建
- 基础工具清单
- 软件安装流程
- Gitee 图床配置方案
- 仓库创建规范
- 访问令牌生成
- PicGo 参数配置
- GitHub 图床替代方案
- 仓库创建规范
- 访问令牌生成
- PicGo 参数配置
- Typora 集成配置
- 故障诊断指南
- 常见问题及解决方案
- 日志分析方法
- 技术方案评估
- 优势分析
- 局限性说明
- 结语
前言
在技术文档创作与知识管理场景中,Markdown 因其简洁的语法结构与跨平台特性已成为主流写作工具。然而,传统本地图片存储方案存在文档可移植性差、云端协作困难等痛点。本文提出基于 Typora 编辑器、PicGo 图床工具 与 Gitee/GitHub 代码托管平台的集成解决方案,实现 Markdown 文档中图片的云端托管与自动上传功能,有效提升技术写作效率与文档可维护性。
核心概念解析
图床技术原理
图床(Image Hosting Service)是通过网络存储服务托管图片文件,并生成永久访问链接的技术方案。其核心价值体现在:
- 文档可移植性:图片资源与文档主体分离存储,确保跨平台浏览时图片正常加载
- 版本控制友好:避免二进制图片文件混入版本库,降低仓库体积
- 访问稳定性:依托专业云存储服务,保障图片资源的高可用性
环境搭建
基础工具清单
工具名称 | 功能描述 | 官方资源 |
---|---|---|
Typora | Markdown 实时渲染编辑器 | typora.io |
PicGo | 图床管理工具 | GitHub Release |
Node.js | JavaScript 运行时环境(插件依赖) | nodejs.org |
Gitee/GitHub | 代码托管平台(图床存储) | gitee.com/github.com |
软件安装流程
-
Typora 安装
访问官网下载对应系统版本,执行标准安装流程(Windows/macOS/Linux 均提供官方支持) -
PicGo 部署
从 GitHub Release 页面获取最新稳定版安装包,完成本地部署 -
Node.js 环境配置
下载 LTS 版本安装包并执行默认配置,验证安装:node -v && npm -v
Gitee 图床配置方案
仓库创建规范
- 登录 Gitee 控制台,点击右上角
+
选择 新建仓库 - 关键参数配置:
- 仓库名称:建议使用
image-bed
等语义化命名 - 可见性:选择 公开(Private 仓库无法直接外链)
- 初始化选项:勾选 使用 Readme 文件初始化仓库
- 仓库名称:建议使用
访问令牌生成
- 进入 个人设置 > 安全设置 > 私人令牌
- 点击 生成新令牌,权限范围勾选
projects
与repo
相关权限 - 复制生成的令牌字符串(仅显示一次,需妥善保存)
PicGo 参数配置
打开 PicGo 主界面,进入 图床设置 > Gitee,填写以下参数:
配置项 | 值格式示例 | 说明 |
---|---|---|
owner | your_gitee_username | Gitee 账户名称 |
repo | image-bed | 图床仓库名称 |
token | ghp_xxxxxxxxxxxxxx | 前文生成的私人令牌 |
path | images/ | 图片存储路径(可选) |
customUrl | (留空) | CDN 加速地址(进阶配置) |
验证配置有效性:
使用 Win + Shift + S
截图后,在 PicGo 选择 剪贴板图片上传,观察上传日志与仓库文件更新状态。
GitHub 图床替代方案
鉴于国内政策对 Gitee 公开仓库的审查限制,推荐使用 GitHub 作为主图床服务,操作流程如下:
仓库创建规范
- 登录 GitHub 控制台,点击 New repository
- 关键参数配置:
- Repository name: 建议
image-host
- Visibility: 选择 Public
- Initialize this repository: 勾选 Add a README file
- Repository name: 建议
访问令牌生成
- 进入 Settings > Developer settings > Personal access tokens
- 点击 Generate new token,权限范围勾选
repo
全权限 - 设置令牌有效期(建议
No expiration
),生成后复制密钥
PicGo 参数配置
进入 图床设置 > GitHub,填写以下参数:
配置项 | 值格式示例 | 说明 |
---|---|---|
owner | your_github_username | GitHub 账户名称 |
repo | image-host | 图床仓库名称 |
branch | main | 默认分支名称 |
token | ghp_xxxxxxxxxxxxxx | 生成的 GitHub 令牌 |
path | assets/ | 图片存储子目录(可选) |
customUrl | (留空) | JSDelivr CDN 加速(可选) |
Typora 集成配置
- 打开 Typora 偏好设置 > 图像
- 关键参数配置:
- 插入图片时:选择 上传图片
- 上传服务:选择 PicGo (app)
- PicGo 路径:指定本地 PicGo 可执行文件位置(默认路径见系统文档)
- 点击 验证图片上传选项 进行连通性测试
故障诊断指南
常见问题及解决方案
故障现象 | 诊断步骤 | 解决方案 |
---|---|---|
上传失败(服务端错误) | 1. 检查仓库名称拼写 2. 验证令牌权限 | 重新生成访问令牌并更新配置 |
Typora 无法连接 PicGo | 1. 检查 PicGo 端口号(默认 36677) 2. 查看防火墙设置 | 同步修改 Typora 与 PicGo 的端口配置 |
图片上传成功但无法访问 | 1. 确认仓库可见性为 Public 2. 检查 CDN 缓存状态 | 禁用浏览器缓存或配置强制刷新策略 |
日志分析方法
- 打开 PicGo 设置 > 设置日志文件
- 查看最新日志条目,重点关注以下字段:
status code
:HTTP 状态码(200/403/404 等)error message
:服务端返回的具体错误描述
技术方案评估
优势分析
- 自动化工作流:实现截图→上传→Markdown 嵌入的全链路自动化
- 成本可控:依托 GitHub 免费仓库提供稳定存储服务
- 跨平台兼容:Windows/macOS/Linux 系统均可部署
局限性说明
- 国内访问延迟:GitHub 原生服务存在网络波动问题,可通过 JSDelivr CDN 加速缓解
- 存储容量限制:免费账户单仓库推荐存储量 ≤1GB,超出需考虑对象存储方案
结语
本方案通过整合 Typora 编辑器、PicGo 工具链与代码托管平台,构建了高效可靠的 Markdown 图床工作流。建议用户根据实际网络环境选择 Gitee 或 GitHub 作为存储后端,定期检查令牌有效期与仓库存储用量。对于企业级应用场景,可扩展接入阿里云 OSS、腾讯云 COS 等对象存储服务以满足更高性能需求。
相关文章:
使用 Typora + PicGo + Gitee/GitHub 构建 Markdown 图床技术方案
使用 Typora PicGo Gitee/GitHub 构建 Markdown 图床技术方案 AuthorDateVersionNoteTao Wang2025-04-24V1.0Release the document. 文章目录 使用 Typora PicGo Gitee/GitHub 构建 Markdown 图床技术方案前言核心概念解析图床技术原理 环境搭建基础工具清单软件安装流程 …...
问道数码兽 怀旧剧情回合手游源码搭建教程(反查重优化版)
本文将对"问道数码兽"这一经典卡通风格回合制手游的服务端部署与客户端调整流程进行详细拆解,适用于具备基础 Windows 运维和手游源码调试经验的开发者参考使用。教程以实战为导向,基于原始说明内容重构优化,具备较高的内容查重避重…...
Electron Forge【实战】百度智能云千帆大模型 —— AI聊天
1. 获取 Access Key 与 Secret Key 登录百度智能云 https://login.bce.baidu.com/ 2. 安装node.js sdk npm install baiducloud/qianfan3. src/main.ts import { setupIPC } from "./ipc";在 const mainWindow 之后 setupIPC(mainWindow);4. src/ipc.ts import { ipc…...
机器人操作中的生成式 AI:综述(下)
25年3月来自香港大学、香港理工、香港科大、浙大和清华大学的论文“Generative Artificial Intelligence in Robotic Manipulation: A Survey”。 本综述全面回顾机器人操作领域生成学习模型的最新进展,并探讨该领域的关键挑战。机器人操作面临着关键瓶颈ÿ…...
把一个 PyTorch 的图像张量转换成 NumPy 格式,并按照正确的维度顺序显示出来
示例代码: plt.imshow(np.transpose(tensor_denorm.numpy(), (1, 2, 0)))它的作用是:把一个 PyTorch 的图像张量转换成 NumPy 格式,并按照正确的维度顺序显示出来。 🚀 一步步解释: ✅ tensor_denorm 这是一个形状为…...
windows上的RagFlow+ollama知识库本地部署
一、 docker的安装与部署 1. 下载Docker Desktop 访问Docker官网并下载适用于Windows的Docker Desktop安装程序。 RagFlow对docker的要求: Docker ≥ 24.0.0 & Docker Compose ≥ v2.26. docker 下载地址: https://www.docker.com/ Get Docker | D…...
【docker】 pull FROM build
镜像拉取失败 token问题 DeadlineExceeded: failed to fetch anonymous token Get "https://auth.docker.io/token?...": dial tcp 157.240.20.8:443: i/o timeout1. 检查网络连通性 如果 curl 命令卡住或超时,说明网络到 Docker Hub 存在问题。 ping regt-1.doc…...
【数据分析实战】使用 Matplotlib 绘制玫瑰图
🌹 1、简述 玫瑰图,又称极坐标柱状图(Polar Bar Chart),是一种特殊的条形图,适用于展示方向型数据,例如: 风向频率图(Wind Rose)每月、每日不同类别统计圆形时间序列展示(如12个月销售量分布)在本篇博客中,我们将使用 matplotlib 画出玫瑰图,包括基本玫瑰图、多…...
第十四届蓝桥杯省B.砍树
第十四届蓝桥杯省B.砍树 题目 题目解析及思路 考虑一对无序数对的点 x和 y,如果我们砍掉某条边可以让这两个点不连通,那么这条边一定是从 x到 y 路径上的一点,我们可以让从 x到 y 路径的边权值都加1。这个操作我们可以使用树上差分。 对于 …...
windows安装Mysql
一、删除已安装的MySQL服务 1、查找以前是否装有mysql sc query mysql 无结果,说明未安装过mysql或者已经卸载mysql服务,接下来直接安装mysql即可,否则需要删除之前安装的mysql 2、删除mysql 以管理员模式打开命令运行行,运行下…...
Axure大屏可视化模板:多领域数据决策的新引擎
在数据驱动决策的时代,Axure大屏可视化模板凭借交互性与可定制性,成为农业、园区管理、智慧城市、企业及医疗领域的创新工具,助力高效数据展示与智能决策。 核心应用场景 1. 农业精细化:实时监控土壤湿度、作物生长曲线&#x…...
【产品经理从0到1】原型及Axure介绍
原型分类 原型的三种分类: 草图原型:⼿绘稿,制作⽅便,修改不⽅便;低保真原型:简单交互,⽆设计图; 最好的原型是⿊⽩灰的;⾼保真原型:复杂交互,有…...
【激光雷达3D(7)】CenterPoint两阶段细化仅使用BEV特征;PV-RCNN两阶段细化使用体素特征;M3DETRTransformer统一多表征特征
文章目录 1. CenterPoint的两阶段细化模块仅使用鸟瞰视角(BEV)特征2 PV-RCNN 两阶段3 M3DETR(假设为类似DETR的3D检测器) 1. CenterPoint的两阶段细化模块仅使用鸟瞰视角(BEV)特征 CenterPoint的两阶段细化…...
C# 音频分离(MP3伴奏)
编程语言:C# 库:NAudio NAudio 是一个开源的 .NET 音频处理库,它为开发者提供了丰富的功能,能在 Windows 平台上方便地进行音频的录制、播放、处理等操作。以下是关于 NAudio 库的详细介绍: 主要特性 多格式支持&am…...
JavaScript性能优化实战(4):异步编程与主线程优化
JavaScript单线程模型与事件循环深入理解 JavaScript作为一种单线程语言,其执行模型与传统多线程编程语言有着根本性的差异。这种单线程特性既是JavaScript的局限,也是其简洁性的来源。深入理解JavaScript的单线程模型和事件循环机制,对于编写高性能的异步代码至关重要。 …...
Control Center安卓版:自定义控制中心,提升手机操作体验
在使用智能手机的过程中,许多用户希望能够更加便捷地访问常用功能和工具,提升操作效率。今天,我们要介绍的 Control Center安卓版,就是这样一款功能强大的手机控制软件。它不仅提供了简便的操作方法,还允许用户自定义操…...
Web3.0的认知补充(去中心化)
涉及开发技术: Vue Web3.js Solidity 基本认知 Web3.0含义: 新一代互联网思想:去中心化及用户为中心的互联网 数据:可读可写可授权 核心技术:区块链、NFT 应用:互联网上应用 NFT &…...
在Vue3中,如何在父组件中使用v-model与子组件进行双向绑定?
在 Vue 3 里,借助 v-model 可以轻松实现父组件与子组件的双向绑定。以下为你详细介绍实现步骤与示例代码。 实现原理 v-model 在 Vue 3 里是一种语法糖,它本质上是 :modelValue 和 update:modelValue 的组合。父组件借助 :modelValue 向子组件传递数据…...
沁恒MounRiver Studio无法printf浮点数
最近在使用沁恒MounRiver Studio进行CH32V307进行开发,但是遇到了已经成功获得浮点数,但是无法printf输出浮点数 如下图所示: 经过查找资料后,发现沁恒MounRiver Studio如果要printf输出浮点数需要打开Use float with nano print…...
初识Redis · 主从复制(下)
目录 前言: 数据同步 全量复制 部分复制 实时复制 前言: 前文我们已经介绍过了主从复制的基本概念,即分布式系统中存在多个Redis节点,一个是充当为主节点,其他的为从节点,并且从节点也是可以成为主节…...
BDO分厂开展地沟“大清肠”工作
BDO分厂装置区内的地沟主要回收生产过程中产生的污水、日常雨水,日积月累地沟内堆积了一层淤泥和杂物。厚厚的淤泥气味不仅影响员工健康,而且造成排水系统不畅通,存在安全隐患。分厂借助此次待产停车的有利时机对沉积已久的淤泥进行一次彻底“…...
程序和进程的详细对比
💡 一、程序(Program) ✅ 定义: 程序是一组指令的集合,通常是一个 可执行文件(如 .exe、.out),它是静态的、保存在磁盘上的一段代码,还没有被执行。 ✅ 特点ÿ…...
Flink介绍——实时计算核心论文之Flink论文
引入 通过前面的文章,我们梳理了大数据流计算的核心发展脉络: S4论文详解S4论文总结Storm论文详解Storm论文总结Kafka论文详解Kafka论文总结MillWheel论文详解MillWheel论文总结Dataflow论文详解Dataflow论文总结 而我们专栏的主角Flink正是站在前人的…...
【C++指南】位运算知识详解
. 💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 文章目录 引言一、位运算符概述1. 按位与(&)2. 按位或(|&#…...
网络开发基础(游戏)之 数据交换格式
数据交换格式是不同系统、应用程序或组件之间传输和共享数据时使用的标准化数据表示方式。在网络通信中,数据交换格式的选择直接影响系统的性能、可维护性和扩展性。以下是常用的数据交换格式的介绍和选择建议。 Protobuf (Protocol Buffers)协议缓冲区 是 Googl…...
怎么配置一个kubectl客户端访问多个k8s集群
怎么配置一个kubectl客户端访问多个k8s集群 为什么有的客户端用token也访问不了k8s集群,因为有的是把~/.kube/config文件,改为了~/.kube/.config文件,文件设置成隐藏文件了。 按照kubectl的寻找配置的逻辑,kubectl找不到要访问集群…...
【MongoDB】卸载、安装低版本
卸载 MongoDB 的步骤因操作系统而异,以下是 Windows、macOS 和 Linux 的详细卸载方法: 1. Windows 卸载 MongoDB 方法 1:通过控制面板卸载 打开控制面板 Win R → 输入 appwiz.cpl → 回车 找到 MongoDB 在程序列表里找到 MongoDB Server …...
WGAN+U-Net架构实现图像修复
简介 简介:该论文提出了一种基于Wasserstein生成对抗网络(WGAN)的图像修复方法,使用U-Net生成器,通过对抗损失与内容损失联合训练,有效解决了传统方法对破损区域形状大小受限、修复痕迹明显的问题。在CelebA和LFW数据集上的实验表明,该方法修复效果优于现有技术,尤其对…...
vscode vue文件单行注释失效解决办法
打开设置,搜索 files.associations,添加项 *.vue html 点击确定即可...
机器学习(7)——K均值聚类
文章目录 1. K均值(K-means)聚类是什么算法?2. 核心思想2. 数学目标3. 算法步骤3.1. 选择K个初始质心:3.2.迭代优化3.3. 重复步骤2和步骤3: 4. 关键参数5. 优缺点6. 改进变种7. K值选择方法8. Python示例9. 应用场景10…...
LainChain技术解析:基于RAG架构的下一代语言模型增强框架
摘要 随着大语言模型(LLM)在自然语言处理领域的突破性进展,如何突破其知识时效性限制、提升事实准确性成为关键挑战。LainChain通过整合检索增强生成(RAG)技术,构建起动态知识接入框架,为LLM提供实时外部知识支持。本文从技术原理、架构设计、应用场景三个维度,深入解…...
Java 使用 RabbitMQ 消息处理(快速上手指南)
目录 一、前言二、RabbitMQ 简介三、开发环境搭建3.1 安装 RabbitMQ在 Ubuntu 上安装在 Windows 上安装使用 Docker 安装3.2 添加 Maven 依赖四、RabbitMQ 的核心概念BrokerVirtual hostConnectionChannelExchangeQueueProducerConsumer五、RabbitMQ 基本操作5.1 发送消息(生产…...
Java 2025 技术全景与实战指南:从新特性到架构革新
作为一名Java开发者,2025年的技术浪潮将带给我们前所未有的机遇与挑战。本文将带你深入探索Java生态的最新发展,从语言特性到架构革新,助你在技术洪流中把握先机! 🌟 Java 2025 新特性全景 1. 模式匹配的全面进化 (J…...
【hadoop】HBase shell 操作
1.创建course表 hbase(main):002:0> create course,cf 2.查看HBase所有表 hbase(main):003:0> list 3.查看course表结构 hbase(main):004:0> describe course 4.向course表插入数据 hbase(main):005:0> put course,001,cf:cname,hbase hbase(main):006:0> …...
rabbitmq死信队列处理
创建私信队列并绑定 # 死信交换机配置 以直连交换机为列 my:exchangeNormalName: exchange.normal.a #正常交换机queueNormalName: queue.normal.a #正常队列exchangeDlxName: exchange.dlx.a #死信交换机queueDlxName: queue.dlx.a #死信队列…...
基于事件驱动的云原生后端架构设计:从理念到落地
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:微服务之后,事件驱动正在成为新范式 随着业务复杂度的提升,传统同步式微服务调用模式逐渐暴露出瓶颈:服务间耦合度高、并发能力有限、出错链路复杂。而在互联网业务、金融交易、物联网等场景中…...
CentOS 7 磁盘阵列搭建与管理全攻略
CentOS 7 磁盘阵列搭建与管理全攻略 在数据存储需求日益增长的今天,磁盘阵列(RAID)凭借其卓越的性能、数据安全性和可靠性,成为企业级服务器和数据中心的核心存储解决方案。CentOS 7 作为一款稳定且功能强大的 Linux 操作系统&am…...
区块链技术:深入共识算法、智能合约与DApps的架构奥秘
引言:区块链的颠覆性潜力 在数字化浪潮席卷全球的今天,区块链技术以其独特的去中心化特性、不可篡改的数据记录和透明的交易机制,正在重塑我们对信任、价值交换和组织形式的理解。从比特币的诞生到以太坊的智能合约革命,再到如今…...
深度学习物理信息神经网络PINN+大模型辅助编程
1. 物理信息神经网络(PINN)的兴起 近年来,物理信息神经网络(Physics-Informed Neural Networks, PINN)成为计算科学与人工智能交叉领域的前沿方向。传统数值方法(如有限差分法、有限单元法)在高…...
vue element使用el-table时,切换tab,table表格列项发生错位问题
展示问题 问题描述:使用el-table的fixed"right"属性后,如果切换tab时,回出现最后一列错误的问题 官网提供解决方法:doLayout 需要注意的事项:我这里是通过组件使用的table组件,涉及多层组件封装…...
(八)深入了解AVFoundation-采集:拍照功能的实现
引言 在上一篇文章中,我们初步完成了使用 AVFoundation 采集视频数据的流程,掌握了 AVCaptureSession 的搭建与视频流的预览显示。 本篇将继续深入 AVFoundation,聚焦于静态图片采集的实现。通过 AVCapturePhotoOutput,我们可以…...
C++区别于C语言的提升用法(万字总结)
1.namespace产生原因 在C语言中,变量,函数,以至于类都是大量存在的,因此会产生大量的名称存在于全局作用域中,可能产生很多冲突,至此c的祖师爷为避免命名冲突和名字的污染,造出来了关键字names…...
创新项目实训开发日志4
一、开发简介 核心工作内容:logo实现、注册实现、登录实现、上传gitee 工作时间:第十周 二、logo实现 1.设计logo 2.添加logo const logoUrl new URL(/assets/images/logo.png, import.meta.url).href <div class"aside-first">…...
ospf综合作业
需求 需求分析 区域划分: 网络划分为 area 0、area 1、area 2、area 3、area 4 多个区域。其中 area 0 作为骨干区域,其他为非骨干区域。这种划分符合 OSPF(开放式最短路径优先)协议中区域设计原则,不同区域通过 ABR…...
旋转磁体产生的场-对导航姿态的影响
pitch、yaw、roll是描述物体在空间中旋转的术语,通常用于计算机图形学或航空航天领域中。这些术语描述了物体绕不同轴旋转的方式: Pitch(俯仰):绕横轴旋转,使物体向前或向后倾斜。俯仰角度通常用来描述物体…...
Hive 数据同步到 Doris 最佳实践方案:从场景适配到性能调优全解析
在大数据领域,Hive 作为成熟的数据仓库解决方案,常用于海量数据存储与离线处理,而 Doris 凭借其强大的 OLAP 能力,在实时分析、即席查询等场景表现卓越。当企业需要将 Hive 数据仓库中的数据与 Doris 的分析能力结合时,…...
netty中的Channel与Java NIO中的Channel核心对比
Netty的Channel和Java NIO的Channel虽然都用于网络通信,但设计理念、功能扩展及适用场景存在显著差异。以下从核心特性、设计模式及性能优化等维度展开对比: 1. 抽象层次与功能范围 Java NIO Channel 基础IO模型:仅支持非阻塞IO(NIO),如SocketChannel、ServerSocketChann…...
基于whisper和ffmpeg语音转文本小程序
目录 一、环境准备 ✅ 第一步:安装并准备 Conda 环境 ✅ 第二步:创建 Whisper 专用的 Conda 虚拟环境 ✅ 第三步:安装 GPU 加速版 PyTorch(适配 RTX 4060) ✅ 第四步:安装 Whisper 和 FFMPEG 依赖 ✅…...
使用ffmpeg 将图片合成为视频,填充模糊背景,并添加两段音乐
1.输入3张图片,每张播放一次,播放两秒,视频分辨率设置为1920:1080,每张图片前0.3秒淡入,后0.3秒淡出,图片宽高比不变,用白色填充空白区域 ffmpeg -loop 1 -t 2 -i "img1.jpg" \-loop 1 -t 2 -i "img2.jpg" \-loop 1 -t 2 -i "img3.jpg" \-filte…...
Python协程详解:从基础到实战
协程是Python中实现并发编程的重要方式之一,它比线程更轻量级,能够高效处理I/O密集型任务。本文将全面介绍协程的概念、原理、实现方式以及与线程、进程的对比,包含完整的效率对比代码和详细说明,帮助Python开发者深入理解并掌握协…...