Git 保姆级教程:实用主义与深入探索

大家好,我是雷小帅。 最近群里有几位老哥私我,有没有好的 git 入门资料,想学一下。 偶然看到这个很棒的教程推荐给大家,大家可以看一下,另外还有一个不错的 git 入门网站,也推荐给大家,可以搭配使用。 ...

2026年7月20日

Hugo + PaperMod + Github Pages 搭建一个完善的个人博客(以 Windows11 为例)

Hugo + PaperMod + Github Pages 搭建一个完善的个人博客(以 Windows11 为例) 前言 之前四五年的时间里也算写过五六百篇博客。以前的 Hexo 顶不住博客数量的压力了,所以,切到 Hugo 试一下。 涉及工具 除了搭建博客和介绍如何使用这个博客框架这样一个流程本身,还包含了对 PaperMod 这个主题的一些细节的定制。 ...

2026年7月4日

coverview 博客文章封面部署

coverview 博客文章封面部署 本文适用于需要为博客文章批量生成封面的场景。你会学到:用 Coverview 搭建一个本地封面生成服务,并用 pm2 持久化运行、nginx 反向代理对外提供访问。 ...

2026年4月4日

typecho butterfly

typecho butterfly 本文适用于正在为 Typecho 博客挑选主题的场景。你会学到:Typecho-Butterfly 的版本兼容性、功能特性,以及下载安装方法。 我选择主题的刚性需求有以下三点:导航栏自定义二级目录、代码高亮、好用且好看的目录。而 Typecho-Butterfly 主题正好满足我的需求。Typecho-Butterfly 移植自 hexo 框架的 Butterfly 主题。 ...

2026年4月4日

Typecho Docker 部署指南(基于 PHP 8.2)

Typecho Docker 部署指南(基于 PHP 8.2) 本文适用于在 Debian/Ubuntu 服务器上用 Docker 部署 Typecho 的场景。你会学到:PHP 8.2 FPM 容器编排、SQLite 零依赖数据库、Nginx 虚拟主机配置、Cloudflare IP 白名单加固,以及修改后台路径增强安全。 ...

2026年4月4日

Typecho 部署(Docker 部署 PHP 8.2)

Typecho 部署(Docker 部署 PHP 8.2) 本文适用于在 Debian/Ubuntu 服务器上用 Docker 部署 Typecho 的场景。你会学到:PHP 8.2 FPM 容器编排与端口映射、Nginx 虚拟主机与 Cloudflare IP 白名单配置、SQLite 安装向导,以及修改默认后台登录路径。 ...

2026年4月4日

Typecho 文章批量导出工具

Typecho 文章批量导出工具 提供从 Typecho 数据库批量导出文章为 Markdown 文件的 Python 脚本,支持 SQLite 和 MySQL 两种数据库。 功能特点 自动识别已发布的文章(status='publish') 保留原始文章标题和内容 自动生成规范化文件名(替换特殊字符) 实时输出导出进度 SQLite 版本 import sqlite3 import os # 配置区 ================================== DB_FILE = 'typecho.db' # SQLite 数据库文件路径 OUTPUT_DIR = './exported_md' # 输出目录 # ========================================= def export_posts(): """导出已发布的文章到Markdown文件""" if not os.path.exists(OUTPUT_DIR): os.makedirs(OUTPUT_DIR) with sqlite3.connect(DB_FILE) as conn: cursor = conn.cursor() cursor.execute(""" SELECT cid, title, text FROM typecho_contents WHERE status='publish' """) for cid, title, text in cursor.fetchall(): # 生成安全的文件名 filename = f"{cid}_{title.replace('/', '_').replace(' ', '_')}.md" filepath = os.path.join(OUTPUT_DIR, filename) with open(filepath, 'w', encoding='utf-8') as f: f.write(f"# {title}\n\n{text}") print(f"✓ 导出成功: {title} → {filename}") if __name__ == '__main__': export_posts() MySQL 版本 import mysql.connector import os # 配置区 ================================== DB_CONFIG = { 'host': 'localhost', 'user': 'typecho_user', 'password': 'your_password', 'database': 'typecho_db', } OUTPUT_DIR = './exported_md' # 输出目录 # ========================================= def export_posts(): """导出已发布的文章到Markdown文件""" if not os.path.exists(OUTPUT_DIR): os.makedirs(OUTPUT_DIR) try: conn = mysql.connector.connect(**DB_CONFIG) cursor = conn.cursor() cursor.execute(""" SELECT cid, title, text FROM typecho_contents WHERE status='publish' """) for cid, title, text in cursor.fetchall(): # 生成安全的文件名 filename = f"{cid}_{title.replace('/', '_').replace(' ', '_')}.md" filepath = os.path.join(OUTPUT_DIR, filename) with open(filepath, 'w', encoding='utf-8') as f: f.write(f"# {title}\n\n{text}") print(f"✓ 导出成功: {title} → {filename}") finally: cursor.close() conn.close() if __name__ == '__main__': export_posts() 使用说明 准备工作: ...

2026年4月4日

构建并推送自定义 PHP 8.2 FPM 镜像(适用于 Typecho)

构建并推送自定义 PHP 8.2 FPM 镜像(适用于 Typecho) 本文档介绍如何在本地构建一个适用于 Typecho 的自定义 PHP 8.2 FPM 镜像,并将其推送至 Docker Hub。 准备工作目录 mkdir -p /opt/php cd /opt/php 创建 Dockerfile 创建并编辑 Dockerfile 文件: ...

2026年4月4日

为typecho启用cloudflare

为typecho启用cloudflare 本文适用于 Typecho 站点接入 Cloudflare 后加固源站 nginx 的场景。你会学到:如何让 nginx 只响应已知域名、只接受来自 Cloudflare 的访问,避免攻击者绕过 CDN 直接打源站。 站点启用 Cloudflare 后,源站 IP 仍然公网可达。需要做两层限制: ...

2026年4月4日

r2图床防止被刷

r2图床防止被刷 最近刚白嫖了cf的r2存储桶作为图床,但是r2存储计费无上限,也就是说存在被刷爆的风险。所以采取以下措施,防止被刷爆。 缓存 利用Cloudflare的页面规则和Cache Rules 功能,为R2域名添加缓存。 ...

2025年6月20日