VS-MDAllInPicGo-Markdown写作的图片上传利器
你是否经常在VS Code中编写Markdown文档,却在发布到不同平台时为图片处理而烦恼?VS-MDAllInPicGo插件将彻底解决这个问题,让你的Markdown文档轻松实现跨平台发布!
为什么需要VS-MDAllInPicGo?在使用Markdown编写文档时,我们常常会插入本地图片。然而,当需要将文档发布到不同平台(如博客、社交媒体或文档托管网站)时,这些本地图片链接往往无法正常显示。传统的解决方法是手动将每张图片上传到图床,然后逐一替换链接,这个过程既繁琐又耗时。
VS-MDAllInPicGo正是为解决这个痛点而生!
VS-MDAllInPicGo: 一键解决跨平台发布难题这款专为VS Code设计的插件提供了一键上传图片到图床并自动替换链接的功能,彻底简化了Markdown文档的跨平台发布流程。
核心优势
一键操作: 右键点击即可完成所有图片的上传和链接替换,无需手动处理。
跨平台兼容: 上传到图床后的图片链接可在任何平台正常显示,确保你的文档在不同网站上都能完美呈现。
时间节省: 告别繁琐的手动上传过程,大幅提升发布效率。
多图床支持: 通过PicGo支持多种主 ...
解锁 Git 的隐藏力量:如何用 Git Hooks 自动化你的开发流程
Git Hooks:自动化你的Git工作流Git hooks是Git版本控制系统中一个强大而又常被忽视的功能。它们允许你在Git工作流的特定点自动触发自定义脚本,从而实现工作流程的自动化。本文将介绍Git hooks的基本概念、常用类型以及如何使用它们来提高开发效率。
什么是Git Hooks?Git hooks是在Git仓库的.git/hooks目录下的脚本,它们在Git执行某些操作时自动运行。这些脚本可以在提交前后、推送前后等关键点执行,用于执行自定义操作。
常用的Git Hooks类型
pre-commit:在提交前运行,通常用于代码lint、运行测试等。
post-commit:在提交后立即运行,可用于通知或日志记录。
pre-push:在推送到远程仓库前运行,可用于最后的检查。
post-receive:在服务器端接收推送后运行,常用于自动部署。
如何使用Git Hooks
进入你的Git仓库的.git/hooks目录。
你会看到一些.sample文件,这些是示例hook。
创建一个新文件,名称与你想要实现的hook类型相同(如pre-commit)。
...
开发自己的 VSCode 插件:开启编程效率之旅
1. 准备开发环境
安装 Node.js 和 npm
安装 VSCode
安装 Yeoman 和 VSCode Extension Generator
2. 创建插件项目打开终端,运行以下命令:
12npm install -g yo generator-codeyo code
按照提示设置你的插件项目。
3. 了解插件结构主要文件包括:
package.json:插件的配置文件
extension.ts:插件的主要代码
README.md:插件的说明文档
4. 编写插件代码在 extension.ts 中实现你的插件功能。
开发过程中可以安装推荐的几个vscode插件(.vscode\extensions.json)
5. 调试和测试使用 VSCode 的调试功能来测试你的插件。
按下F5后查看调试控制台可以看到日志输出
直接在编辑器里打断点,调用栈里查看变量和其他信息
yo脚手架生成的代码已经实现了热重载,更新代码后只需要reload(快捷键:ctrl+shift+r)一下调试窗口即可
6. 发布插件发布扩展 | Visual Studio 代码扩展 API — Pub ...
Git高手必看!合并提交历史技巧🔧
在Git中,合并提交历史可以针对本地仓库或远程仓库进行。以下是几种常见的场景和相关命令,并说明了如何处理远程仓库的情况:
1. 使用 git rebase -i 交互式变基这种方法主要用于合并本地的提交历史。如果需要更新远程仓库,则需要使用强制推送。
本地操作:
查看提交历史:
1git log --oneline
启动交互式变基:
1git rebase -i HEAD~N
编辑提交记录,将要合并的提交前缀改为 squash 或 fixup。
保存并退出编辑器。
远程操作:如果你修改了已经推送到远程的提交历史,需要使用强制推送:
1git push --force origin branch-name
注意:强制推送可能会覆盖远程仓库的历史,请谨慎使用。
2. 使用 git merge --squash这种方法可以用于合并本地分支的提交,也可以用于合并远程分支的提交。
本地操作:
切换到目标分支:
1git checkout main
合并其他分支的提交:
1git merge --squash feature-branch
提交更改:
1git commit -m ...
Python虚拟环境的创建和使用指南
Python虚拟环境是一个强大的工具,可以帮助开发者为不同的项目创建独立的Python运行环境。本文将介绍如何创建、激活、使用和退出虚拟环境,以及如何管理项目依赖。
创建虚拟环境要创建一个新的虚拟环境,请使用以下命令:
1python -m venv <虚拟环境目录>
这将在指定的目录中创建一个新的虚拟环境。
激活虚拟环境创建虚拟环境后,需要激活它才能使用。激活方法因操作系统而异:
对于Linux和Mac:
12cd <虚拟环境目录/bin>source activate
对于Windows:
12cd <虚拟环境目录\Scripts>activate.bat
激活后,您可以在此环境中正常安装和使用第三方包。
退出虚拟环境当您完成工作后,可以使用以下命令退出虚拟环境:
1deactivate
管理项目依赖为了方便项目的移植和协作,可以使用以下方法管理依赖:
生成依赖文件:
1pip freeze > requirements.txt
在新环境中安装依赖:
1pip install -r requirements.txt
通过这种 ...
OPPO A56电池鼓包换直供通电自动开机模块
前言5月份搬家后就把宽带给注销了,用一部闲置的OPPO A56插流量卡来放热点代替路由器WIFI的功能
问题出现手机当热点就一直插着充电线,到现在就4个月,电池就鼓包了,于是萌生了把电池去掉改成直供通电的想法
几个方案方案一:原装电池保护板直接焊接一条usb线这个方案在哔哩哔哩上很多up都是这样改的,大部分的评论区都说这样可能得加电阻或者二极管,不然电压高了一点
拼多多和海鲜市场也有已经焊接好电池保护板或者手机主板接口的线卖
方案二:海鲜市场上还有一种数据直供一体线方案二比方案一可以更美观和方便一点
方案三:直供通电自动开机模块方案三和前面两个方案对比来说只是多了一个通电自动开机的功能,但是成本高了,手工成本和经济成本都高了很多啊
我这里就是选择了方案三,就是想折腾下
拼多多上买了这个模块
实操
没有热风枪,用吹风筒吹了一下后盖,用刀片把塑料后盖给拆下来了
清理了一下残留的背胶,拧下所有的螺丝,取下中框(忘记拍图了)
取下电池,用陶瓷剪刀剪断电池保护板和电池之间的连接
焊接导线,模块上的B+对应保护板上的B+,B-对B-,不放心的可以用万用表试一下电池的正负极 ...
Docker搭建Tailscale私有DERP中继服务器
准备一个域名并添加到cloudflare中这里就偷懒不写了
使用certbot生成证书,需要暂时关闭服务器占用80端口的服务……其实用cloudflare生成的证书也可以12345# 安装certbotsudo snap install --classic certbot# 生成证书 --standalone 选项告诉 Certbot 运行一个临时的 Web 服务器来进行认证sudo certbot certonly --standalone # 填写邮箱和域名
启动容器12345678docker run -d -p 0.0.0.0:3478:3478/udp -p 0.0.0.0:50443:50443 \ -v /etc/letsencrypt/live/derper.example.com/fullchain.pem:/app/certs/derper.example.com.crt \ -v /etc/letsencrypt/live/derper.example.com/privkey.pem:/app/certs/derper.example.com.key \ ...
Docker部署RustDesk中继服务器
Docker部署RustDesk中继服务器RustDesk官方文档
新建compose.yml1234567891011121314151617181920212223242526272829303132333435363738394041networks: rustdesk-net: external: falseservices: hbbs: container_name: hbbs ports: - 21115:21115 - <hbbs_port>:21116 # 自定义 hbbs 映射端口 - <hbbs_port>:21116/udp # 自定义 hbbs 映射端口 image: rustdesk/rustdesk-server command: hbbs -r <your_domain>:<hbbr_port> # 填入个人域名或 IP + hbbr 暴露端口 volumes: - <mount_path>:/root # 自定义挂载 ...
域名、子域名、IP地址与服务器端口之间的关系以及子域名和反向代理的区别
概述在互联网架构中,域名、子域名、IP地址与服务器端口共同构成了网站和服务的访问路径。理解它们之间的关系,有助于更好地管理和部署网络服务。
1. 域名
定义:域名是一个人类可读的地址,用于识别互联网上的网站,例如 example.com。
功能:
识别网站:帮助用户轻松记忆和访问网站。
DNS解析:通过域名系统(DNS)将域名解析为对应的IP地址,便于计算机定位和访问网站。
2. 子域名
定义:子域名是主域名的扩展部分,用于组织或分类网站的不同部分,例如 blog.example.com 或 shop.example.com。
功能:
服务分类:将不同的服务或功能模块区分开,例如博客、商店、API等。
灵活部署:可以指向与主域名相同的服务器,也可以配置指向不同的服务器,实现服务的分离和独立管理。
更高层级的域名:(三级或者四级域名 extra.sub.blog.example.com)也是可行的,主要用于进一步的组织和分类
3. IP地址
定义:IP地址(如 192.168.1.1 或 2001:0db8:85a3:0000:0000:8a2e:0370:7334)是分配给 ...
Docker安装Guacamole+MySQL实现浏览器访问远程桌面等等服务
Docker的安装就不赘叙了,宿主机器是windows/linux/macos都行
Guacamole官方文档
获取镜像123docker pull guacamole/guacamole # 前端客户端页面docker pull guacamole/guacd # 后端服务端处理各种连接协议docker pull mysql # 存储用户身份验证信息,还有其他数据和其他非数据库的方案可以选择
启动容器
生成数据库初始化文件
1docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
启动mysql容器并导入初始化数据库文件
1docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=guac -v ./initdb.sql:/docker-entrypoint-initdb.d/initdb.sql mysql
20s后再检查initdb.s ...