[{"content":"","date":"2026年3月11日","externalUrl":null,"permalink":"/blogs/","section":"Blogs","summary":"","title":"Blogs","type":"blogs"},{"content":"你是否习惯在 Memos 上随手记录灵感，却又希望这些碎碎念能实时同步到飞书，方便团队查阅或提醒自己？\n由于 Memos 和飞书的 Webhook 数据格式“语言不通”，直接填地址是无法成功的。今天，手把手教你利用 Cloudflare Workers 搭建一个免费的中间“翻译官”，实现秒级同步！\n🛠️ 准备工具 # Memos 账号（已部署好实例） 飞书 群机器人（获取 Webhook 地址） Cloudflare 账号（用于部署免费的转发脚本） 第一步：获取飞书机器人地址 # 进入飞书群聊，点击 设置 -\u0026gt; 机器人 -\u0026gt; 添加机器人。 选择 “自定义机器人” ，设置好名字（如：Memos 助手）。 复制生成的 Webhook 地址（格式如：https://open.feishu.cn/open-apis/bot/v2/hook/xxx）。 安全设置： 建议先不设置自定义关键词和 IP 白名单，方便调试。 第二步：搭建“翻译官” Cloudflare Worker # 这是最关键的一步，我们需要一个中间层把 Memos 发出的数据包转换成飞书能看懂的“卡片”。\n登录 Cloudflare，进入 Workers \u0026amp; Pages。 点击 Create Application -\u0026gt; Create Worker，起名 memos-to-feishu。 点击 Edit Code，将代码框内容全部清空，粘贴以下最新增强版代码： export default { async fetch(request, env, ctx) { if (request.method !== \u0026#34;POST\u0026#34;) return new Response(\u0026#34;Method Not Allowed\u0026#34;, { status: 405 }); try { const body = await request.json(); // 兼容 Memos 不同版本的数据结构解析 const memoData = body.memo || body.data || body; const memoContent = memoData.content || \u0026#34;内容为空或解析失败\u0026#34;; const creator = body.creatorName || memoData.creatorName || memoData.creator?.nickname || \u0026#34;Memos用户\u0026#34;; // 构建飞书美观卡片 const feishuPayload = { \u0026#34;msg_type\u0026#34;: \u0026#34;interactive\u0026#34;, \u0026#34;card\u0026#34;: { \u0026#34;header\u0026#34;: { \u0026#34;title\u0026#34;: { \u0026#34;tag\u0026#34;: \u0026#34;plain_text\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;🌟 Memos 新动态\u0026#34; }, \u0026#34;template\u0026#34;: \u0026#34;blue\u0026#34; // 蓝色标题栏 }, \u0026#34;elements\u0026#34;: [ { \u0026#34;tag\u0026#34;: \u0026#34;div\u0026#34;, \u0026#34;text\u0026#34;: { \u0026#34;tag\u0026#34;: \u0026#34;lark_md\u0026#34;, \u0026#34;content\u0026#34;: `**发布者：** ${creator}\\n**正文内容：**\\n${memoContent}` } }, { \u0026#34;tag\u0026#34;: \u0026#34;hr\u0026#34; }, { \u0026#34;tag\u0026#34;: \u0026#34;note\u0026#34;, \u0026#34;elements\u0026#34;: [{ \u0026#34;tag\u0026#34;: \u0026#34;plain_text\u0026#34;, \u0026#34;content\u0026#34;: `同步时间：${new Date().toLocaleString(\u0026#39;zh-CN\u0026#39;, { timeZone: \u0026#39;Asia/Shanghai\u0026#39; })}` }] } ] } }; // ⚠️ 这里替换为你第一步复制的飞书 Webhook 地址 const FEISHU_URL = \u0026#34;https://open.feishu.cn/open-apis/bot/v2/hook/你的代码\u0026#34;; await fetch(FEISHU_URL, { method: \u0026#34;POST\u0026#34;, headers: { \u0026#34;Content-Type\u0026#34;: \u0026#34;application/json\u0026#34; }, body: JSON.stringify(feishuPayload), }); return new Response(\u0026#34;Success\u0026#34;, { status: 200 }); } catch (err) { return new Response(\u0026#34;Error: \u0026#34; + err.message, { status: 500 }); } }, }; 点击右上角 Save and Deploy 部署。 部署完成后，在页面上方找到该 Worker 的 URL 地址（例如：https://memos-to-feishu.xxx.workers.dev​），并复制它。 有需要的，可以设置自定义域名 对自定义域名安全规则中设置“跳过TTS检查” 第三步：在 Memos 中开启推送 # 登录你的 Memos 网页端，点击 设置 (Settings) -\u0026gt; 系统 (System) -\u0026gt; Webhooks。\n点击 创建 (Create) ：\n名称： 飞书推送 Payload URL： 粘贴你在第二步获得的 Cloudflare Worker URL。 点击保存。\n🚀 测试一下！ # 现在，试着在 Memos 发送一条动态。不到 1 秒钟，你的飞书群就会弹出一条精致的蓝色卡片通知！\n❓ 常见问题排查 # Q：为什么提示“无法解析内容”？\nMemos 的版本更新非常快，不同版本的字段名可能叫 memo​、data​ 或 content​。本教程提供的脚本已经做了多重兼容。如果依然报错，可以在 Cloudflare Worker 的 Logs 页面开启实时监控，查看 Memos 发出的原始 JSON 格式。\nQ：我想修改通知卡片的颜色？\n在脚本中找到 \u0026quot;template\u0026quot;: \u0026quot;blue\u0026quot;​，你可以将其改为 orange​、red​、green​ 或 wathet（浅蓝色），定制你的专属通知风格。\n结语 # 通过简单的几行代码，我们就让 Memos 与飞书无缝衔接。如果你觉得这个教程有用，欢迎点赞转发，让更多人的灵感不再“断点”！\n💡 延伸阅读： Memos 还可以通过类似的方式同步到钉钉、微信订阅号或 Telegram 机器人。如果你感兴趣，请在评论区留言告诉我们！\n‍\n参考文章 # 通过 Webhook 将消息推送至钉钉、飞书、企业微信 飞书自定义机器人使用指南 ‍\n","date":"2026年3月11日","externalUrl":null,"permalink":"/post/productivity-takes-off-how-to-automatically-synchronize-memos-to-feishu-group-chat-2rcnsw.html","section":"Blogs","summary":"","title":"生产力起飞！如何实现 Memos 自动同步至飞书群聊？","type":"blogs"},{"content":" 一、核心主旨 # 本方案融合PARA方法论与Johnny Decimal编号系统，构建一套\u0026quot;动态适配、逻辑清晰、低维护成本\u0026quot;的个人数字资产管理体系，通过标准化命名规则与结构化分类架构，实现文件的快速检索与有序归档，解决文件混乱、查找困难的痛点。\n二、文件夹分类体系（基于IPARA+Johnny Decimal） # 1. 00_Inbox（收件箱） # 定位：所有未整理文件的临时中转站 规则：每周定期清空，将文件分发至对应文件夹 作用：统一入口，避免文件散落 2. 10_Identity（身份基石，对应IPARA的核心资产） # 11_Legal（法律证件） ：身份证、护照、户口本、驾照扫描件 12_Education（教育背景） ：毕业证、学位证、成绩单 13_Career（职业履历） ：简历、劳动合同、离职证明、职称证书 14_Health（健康档案） ：体检报告、病历、疫苗接种记录、保险单 15_Finance（财务信用） ：银行卡信息、社保公积金、房产车辆证明 16_Relationships（社会关系） ：结婚证、家庭成员证件备份、公益活动记录 3. 20_Areas（责任领域，对应IPARA的Areas） # 21_Finance_Mgmt（财务管理） ：报税记录、年度账单、家庭预算、投资跟踪 22_Health_Mgmt（健康管理） ：健身计划、饮食记录、医疗账单 23_Housing_Mgmt（居住管理） ：房租/房贷记录、物业通知、水电费账单 24_Career_Dev（职业发展） ：年度述职、工作学习笔记、行业动态 4. 30_Projects（行动项目，对应IPARA的Projects） # 31_Work（主要工作） ：按项目建立子文件夹，存放有明确截止日期的工作任务 32_Personal（个人项目） ：学习计划、旅行策划、代码项目等个人任务 5. 40_Knowledge（知识金库，对应IPARA的Resources） # 41_Vaults（知识库核心） ：Obsidian等笔记软件的数据文件夹 42_Library（静态资料库） ：电子书、学术论文、行业报告、在线课程资料 43_Templates（模板工具） ：简历模板、PPT模板、常用代码片段 6. 50_Assets（数字资产，扩展分类） # 51_Media（影音媒体） ：照片（按年份/月份组织）、视频、音乐收藏 52_Creations（个人作品） ：文章、日记、设计作品、个人代码项目成品 53_Software（软件与备份） ：购买的软件许可、应用数据备份 7. 99_Archive（历史档案馆，对应IPARA的Archives） # 定位：所有已完成项目、已失效合同的永久封存地 规则：镜像30_Projects的结构，定期将完成项目迁移至此 三、文件命名规则 # 1. 标准模板 # YYYYMMDD_文档类型_核心标题_版本号#标签@人物\u0026amp;备注.扩展名 2. 字段说明 # 字段 必填 说明 YYYYMMDD ✅ 8位日期，便于文件按时间自动排序 文档类型 ✅ 从控制词表中选择，避免自定义词汇 核心标题 ✅ 简洁描述文件内容，避免重复文件夹路径中的信息 _v版本号 ❌ 需要版本管理时使用，格式为v1.0、 v2.1.3 #标签 ❌ 补充分类信息，可多个，如#工作 #重要 @人物 ❌ 相关人员或组织，如@HR、@张经理 \u0026amp;备注 ❌ 状态或补充说明，如\u0026amp;待审批、\u0026amp;已归档 3. 命名示例 # 简单文件：20250206_笔记_今天的思考.md 复杂文件：20231216_合同_腾讯入职劳动合同_v1.0#工作@HR.pdf 四、控制词表（文档类型规范） # 1. 凭证与财务类 # 发票、小票、账单、保单、回执\n2. 法务与身份类 # 证件、合同、协议、证书、公文\n3. 思考与产出类 # 方案、纪要、报告、文稿、笔记\n4. 资料与输入类 # 教程、研报、书籍、说明书、素材\n5. 生活与事务类 # 门票、行程单、清单、病历\n使用原则 # 优先使用大类：用「合同」而非「劳动合同」 根据目的命名：门票用于报销时用「发票」，用于纪念时用「门票」 严格从词表选择：避免自创词汇，保持一致性 五、系统维护原则 # 1. 日常维护 # 每日：新文件立即按规则命名，下载文件先放00_Inbox 每周：清空00_Inbox，归档文件；检查30_Projects是否有完成项目需要归档 每月：回顾20_Areas，更新持续性文件；检查99_Archive是否需要备份 2. 旧文件处理策略 # 截止线策略：从当前日期开始，新文件严格执行新标准，旧文件暂不处理 童子军法则：使用旧文件时顺手重命名为新格式，逐步迁移有价值文件 高价值区优先：优先整理10_Identity等核心文件夹，避免无意义的大规模整理 六、实施建议 # 不要追求一步到位：根据自身习惯逐步调整，先从新文件开始执行规则 善用AI辅助：遇到分类困惑时，可将文件描述和系统规则发给AI获取建议 保持灵活性：系统应随工作方式、生活阶段变化持续优化，避免僵化 优先检索效率：命名时考虑搜索场景，确保通过关键词组合能快速定位文件 文件分类与命名 Skill 文档 # 📋 文档概述 # 本文档整合了 IPARA 文件分类理论 与《在 AI 的帮助下，给自己建了个数字人生档案馆》一文中的命名规则，形成一套可落地的个人文件管理系统。\n🗂️ 一、文件夹分类架构（IPARA + Johnny Decimal） # 核心分类逻辑 # 编号 文件夹名称 定义 存放内容示例 00 Inbox（收件箱） 所有未整理文件的临时中转站 下载文件、截图、微信接收文件 01 Projects（项目） 有明确截止日期的事 工作方案、活动策划、学习计划 02 Areas（领域） 需要持续维护的方面 财务管理、健康管理、职业发展 03 Resources（资源） 参考资料 电子书、教程、行业报告、模板 04 Archives（归档） 已完成的内容 已结束项目、过期合同、历史资料 推荐顶层结构（含身份与资产扩展） # E:\\ ├── 00_Inbox (中转站) ├── 10_Identity (身份基石) ├── 20_Areas (责任领域) ├── 30_Projects (行动项目) ├── 40_Resources (知识金库) ├── 50_Assets (数字资产) └── 99_Archives (历史档案馆) — 完整架构来源\n📝 二、文件命名规则 # 标准模板 # YYYYMMDD_文档类型_核心标题_版本号#标签@人物\u0026amp;备注.扩展名 字段说明 # 字段 是否必填 说明 示例 YYYYMMDD ✅ 必填 8 位日期，便于排序 ​20250206 文档类型 ✅ 必填 从控制词表中选择 ​合同​、报告​、发票 核心标题 ✅ 必填 简洁描述文件内容 ​腾讯入职劳动合同 _v 版本号 ⬜ 可选 需要版本管理时使用 ​_v1.0​、_v2.1.3 #标签 ⬜ 可选 补充分类信息，可多个 ​#工作​ #重要 @人物 ⬜ 可选 相关人员或组织 ​@HR​、@张经理 \u0026amp;备注 ⬜ 可选 状态或补充说明 ​\u0026amp;待审批​、\u0026amp;已归档 命名示例 # # 简单文件（只用必填字段） 20250206_笔记_今天的思考.md 20240501_门票_周杰伦演唱会.pdf 20231120_发票_办公用品采购.pdf ​ # 复杂文件（使用可选字段） 20231216_合同_腾讯入职劳动合同_v1.0#工作@HR.pdf 20240315_证书_动物保护组织志愿者#公益@绿色地球.jpg 📚 三、控制词表（Controlled Vocabulary） # 为避免分类混乱，建议从以下固定词表中选择文档类型：\n类别 文档类型 使用场景 凭证与财务 发票、小票、账单、保单、回执 正规发票、购物收据、水电费账单等 法务与身份 证件、合同、协议、证书、公文 身份证、劳动合同、毕业证等 思考与产出 方案、纪要、报告、文稿、笔记 项目方案、会议纪要、工作报告等 资料与输入 教程、研报、书籍、说明书、素材 教学资料、电子书、产品说明书等 生活与事务 门票、行程单、清单、病历 演出门票、旅行订单、就诊记录等 使用原则 # 优先使用大类：用「合同」而不是「劳动合同」 根据目的命名：门票用于报销时用「发票」，用于纪念时用「门票」 不要自创词汇：严格从词表中选择，保持一致性 🔄 四、维护原则 # 日常维护节奏 # 周期 任务 每日 新文件立即按规则命名；下载文件先放00_Inbox 每周 清空00_Inbox，将文件归档到对应位置；检查已完成项目 每月 回顾Areas文件夹，更新持续性文件；检查归档备份 旧文件处理策略 # 截止线策略：新文件严格执行新标准，旧文件不强制修改 童子军法则：打开旧文件时顺手重命名，让\u0026quot;活文件\u0026quot;自动迁移 高价值区优先：优先整理 Identity 和关键合同，归档区不要动 💡 五、核心理念 # \u0026ldquo;不要为了「整齐」而整理，要为了「好找」而整理。\u0026rdquo;\n理念 说明 动态系统 文件管理系统随生活阶段不断调整，非一劳永逸 目的导向 分类服务于未来使用场景，而非物品本质 AI 辅助 用 AI 作为管理教练，降低认知负荷，而非代笔 宽松规则 命名规则\u0026quot;够用就好\u0026quot;，必填字段仅 3 个，避免臃肿 🌐 文档来源 # 主要参考：年度征文｜在 AI 的帮助下，给自己建了个数字人生档案馆 - 少数派\n理论来源：\nPARA 方法（Tiago Forte 提出） Johnny Decimal 系统 元数据文件命名法 ","date":"2026年3月3日","externalUrl":null,"permalink":"/post/file-classification-and-naming-managementskill-document-zhvdm4.html","section":"Blogs","summary":"","title":"文件分类与命名管理Skill文档","type":"blogs"},{"content":" 问题1：如何安装OpenClaw # OpenClaw安装教程：https://mp.weixin.qq.com/s/nLfViIVGxO1irNRROAF4hA 飞书https://mp.weixin.qq.com/s/d3cqk3whqzkulRWDPyfZbQ 问题2：如何升级 # 命令行输入下面的命令就可以升级了。\n# 使用npm升级 npm i -g openclaw@latest # 使用openclaw升级 openclaw update 问题3：上下文记忆太小 # Agent failed before reply: Model context window too small (4096 tokens). Minimum is 16000. Logs: openclaw logs --follow 修改openclaw.json，增加上下文长度\n参考https://blog.csdn.net/u014451778/article/details/158101329 进行修改\n问题4：电报设置好了无法对话 # 需要在频道-Telegram中设置代理地址。\nOpenClaw链接电报的教程：https://zhuanlan.zhihu.com/p/2005005876503790436\n问题5：如何初始化对话 # # 随便聊就可以，比如这个是我和它的第一天聊天记录 1. 你的名字叫“小龙”，我的名字叫“T先生”，你的风格为“热情、积极”，我所在的时区：中国上海 (UTC+8)，我喜欢工作流优化、任务管理、编写代码、AI技术研究，学习风格： 喜欢详细、实用的教程。 # 第二天聊天记录，我让按照我的文件整理风格，建立IPARA理论文件存放规则 2. 在workspace文件夹下建立一个MyOpenClawData文件夹，以后默认情况下你编写的文件，都需要基于IPARA理论（01Inbox:收件箱、02Projects：有明确截止日期的事、03Areas：需要持续维护的方面、04Resources：参考资料、05Archives：已完成的内容）在MyOpenClawData文件夹下建立子文件夹，写的程序文件（python脚本、编程项目等）需要放到纯英文路径下面。 把我每次我输入给你的内容，按年月建立一个Markdown文件，按天写到里面。比如202603.md，里面二级标题20260302，记录今天我和你聊天时，我写的话，明天的时候，二级标题20260303，放到最前面，记录我和你的聊天时输入的内容。 体验下拉，OpenClaw真的好用多了，我之前使用的\n问题6：有哪些推荐的技能 # 问题7：如何登录ClawHub并设置Token？ # ClawHub 是 OpenClaw 的公共 Skills 注册中心。它是一项免费服务：所有 Skills 都是公开的、开放的，所有人都可以查看、共享和复用。Skills 就是一个包含 SKILL.md​ 文件（以及辅助文本文件）的文件夹。你可以在网页应用中浏览 Skills，也可以使用 CLI 来搜索、安装、更新和发布 Skills。网站：clawhub.com\n登录ClawHub网站，Create token，然后复制token\n在命令行或Docker /bin/bash​ 中输入：clawhub login --token \u0026lt;token\u0026gt;\n# 安装clawhub npm i -g clawhub # 认证 clawhub login #（浏览器流程） clawhub login --token \u0026lt;token\u0026gt; # 直接输入token，推荐 # 查看安装了哪些技能 clawhub list # 安装技能 clawhub install my-skill-pack # 更新 clawhub update --all 具体详见https://docs.openclaw.ai/zh-CN/tools/clawhub\n","date":"2026年3月2日","externalUrl":null,"permalink":"/post/summary-of-openclaw-faqs-z2rhiyk.html","section":"Blogs","summary":"","title":"openclaw常见问题汇总","type":"blogs"},{"content":"开源blog，让你不写代码就开始写 blog，管理 blog 内容。无需服务器，无需费用。\n使用方法：https://www.yysuni.com/blog/readme\n项目地址：https://github.com/YYsuni/2025-blog-public\n‍\n","date":"2026年1月7日","externalUrl":null,"permalink":"/post/hen-bu-cuo-de-yi-ge-jian-zhan-fang-fa-2h0y3o.html","section":"Blogs","summary":"","title":"很不错的 一个建站方法","type":"blogs"},{"content":"","date":"2025年12月18日","externalUrl":null,"permalink":"/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":"","date":"2025年12月18日","externalUrl":null,"permalink":"/tags/%E4%B8%AA%E4%BA%BA%E4%BA%A7%E5%93%81/","section":"Tags","summary":"","title":"个人产品","type":"tags"},{"content":"汉字小英雄 是一款专为小学生设计的智能化、游戏化识字应用。 它摒弃了枯燥的死记硬背，通过 AI 赋予每个汉字生命，让孩子在故事、游戏和互动中自然习得汉字。\n汉字小英雄免费给粉丝们使用，但需要大家手动申请下AI API Key，在我的-AI模型配置中填写自己的API Key，下面介绍下申请API Key的方法。\n‍\n智谱AI # 注册登录智谱账户，点击页面右上角的API Key。\n再点击“添加新的API Key”，即可成功创建，复制粘贴到汉字小英雄中即可。\n智谱的glm-4.5-flash​模型为免费的对话模型，glm-4.6v-flash为免费的视觉模型，大家可以使用这2个模型。\n硅基流动 # 点击注册硅基流动，然后点击API密钥-新建API密钥​，复制粘贴到汉字小英雄中即可。\nDeepSeek API Key申请 # 登录DeepSeek API申请网站（https://platform.deepseek.com/api_keys），点击“创建API key”，复制粘贴到汉字小英雄​中即可，注意DeepSeek需要充值后才能正常使用DeepSeek API，充值10元我用了1个月，才扣了0.1元，价格真良心。\n交流反馈 # 欢迎加入微信沟通群交流反馈。\n更多产品 # 作业家：作业家是一个面向学生的任务与积分管理工具，旨在通过简洁的界面与激励机制，帮助用户培养良好的学习与时间管理习惯。 ‍\n","date":"2025年12月18日","externalUrl":null,"permalink":"/post/kanji-little-hero-ai-key-application-guide-1fvfpm.html","section":"Blogs","summary":"","title":"汉字小英雄AI Key申请指南","type":"blogs"},{"content":"一个老师朋友向我咨询有哪些好用的屏幕批准工具，找了几个觉得还不错的，推荐给大家。\nInkeys-智绘教 # 智绘教Inkeys 拥有丝滑流畅的高性能画笔、丰富强大的功能，以及众多贴心小设计，全面提升你的效率与使用体验。\n项目地址：https://github.com/Alan-CRL/Inkeys\n‍\nInk Canvas Artistry # Ink Canvas Artistry是一个WPF/C#开发的基于WXRIW/Ink-Canvas的墨水画布。\n项目地址：https://github.com/InkCanvas/Ink-Canvas-Artistry\n‍\n水豚鼠标助手 # 鼠标换肤 | 屏幕画笔 | 放大镜 | 聚光灯 | 屏幕放大 | 倒计时功能强大的屏幕演示工具。\n官网：https://shuitunapp.com/\n‍\nExcalidraw # Excalidraw是一个免费开源的用于绘制手绘图的虚拟白板。\n项目地址：https://github.com/excalidraw/excalidraw\n官网：https://excalidraw.com/\n‍\nRnote # Rnote是一个开源的基于矢量的绘图应用程序，用于草图，手写笔记以及注释文档和图片。它针对学生，教师和那些拥有绘图平板电脑的人，并提供PDF和图片导入和导出，无限画布和大小屏幕的自适应UI等功能。\n项目地址：https://github.com/flxzt/rnote\nXournal++ # Xournal++是一个开源和跨平台的笔记软件，快速，灵活，功能强大。一个现代的重写和一个更丰富的功能版本的精彩Xournal程序。\n项目地址：https://github.com/xournalpp/xournalpp/\nSaber # Saber是一个为手写而构建的跨平台开源应用程序。\n项目地址：https://github.com/saber-notes/saber\n我已经整理下载好了上述软件，需要的朋友可以公众号回复“屏幕批注”，获取下载链接。\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年9月23日","externalUrl":null,"permalink":"/post/recommended-screen-annotation-and-handwritten-notes-tools-1i6x80.html","section":"Blogs","summary":"","title":"屏幕批注、手写笔记工具推荐","type":"blogs"},{"content":"","date":"2025年9月23日","externalUrl":null,"permalink":"/tags/%E8%BD%AF%E4%BB%B6%E6%8E%A8%E8%8D%90/","section":"Tags","summary":"","title":"软件推荐","type":"tags"},{"content":"","date":"2025年9月19日","externalUrl":null,"permalink":"/tags/%E8%B6%A3%E7%8E%A9%E5%91%A8%E5%88%8A/","section":"Tags","summary":"","title":"趣玩周刊","type":"tags"},{"content":"作者：Tabor\n日期：2025年09月19日\n记录自己发现的好玩、有趣的事情、工具等。\n封面图 # 趣玩工具 # 文颜 - Markdown文章排版美化工具 # 文颜- Markdown文章排版美化工具，支持微信公众号、今日头条、知乎等平台。\nbilibili-video-downloader - B站视频下载 # 哔哩哔哩 bilibili B站 视频 下载器，图形界面 + nfo刮削 + 广告标记 + 字幕下载 + 弹幕下载，轻松将视频加入emby等媒体库。\nNuclear-音乐播放器 # Nuclear，它能帮你从全网免费音乐源头轻松抓取音乐，简直是穷人的 Spotify！\nAny2Text- 在线音频转文字工具 # Any2Text，将您的音频录音、播客、访谈和视频文件转换为准确的文字转录。无需注册，完全免费，由先进的AI语音识别技术提供支持。\nKelivo - LLM客户端 # Kelivo是一个Flutter LLM Chat客户端。支持Android \u0026amp; iOS \u0026amp; Harmony Next.\n‍\nPapra - 文档管理工具 # Papra是一个极简的文档管理和归档平台。它被设计成易于使用和每个人都可以访问。Papra是一个长期文档存储和管理的平台，就像文档的数字存档一样。\nWHPH（Work Hard, Play Hard）- 简洁待办工具 # WHPH是一款全面的生产力应用程序，旨在帮助您管理任务，培养新习惯并优化时间。它可以跟踪应用程序的使用情况，以增强专注力，让您可以分析您的进度，庆祝成就，并保持动力。\nPicX - 图床工具 # PicX 是一款基于 GitHub API 开发的免费图床工具，支持图片、视频及文件上传，提供永久存储、多格式链接生成、批量管理、CDN 加速及个性化定制等功能，适合个人用户和开发者使用。\nNanaZip - 压缩工具 # NanaZip是一款免费开源的压缩工具，是7-Zip的衍生版本，旨在提供现代Windows体验。\nSnippai - AI 加持的智能截图工具 # Snippai 是一款由先进 AI 算法驱动的智能截图工具，功能全面，体验高效，帮助你更轻松地处理截图内容。从识别图片中的公式与文字，到分析图像并进行内容解读，Snippai 带来了截图工具的全新智能体验。\nCover Paint # Cover Paint，在几秒钟内创建封面图像，适合公众号封面图制作，项目地址：https://github.com/youngle316/cover-paint。\n趣书影音 # 本周读完了《养育男孩》，《西游八十一案 : 大唐梵天记》在读中。\n趣学资源 # English Daily # AI驱动的每日英语练习平台，在听、说、阅读、写方面都有高质量的更新。\n‍\n","date":"2025年9月19日","externalUrl":null,"permalink":"/post/fun-weekly-issue-006-wen-yan-17pu1h.html","section":"Blogs","summary":"","title":"趣玩周刊（第 006 期）：文颜","type":"blogs"},{"content":"作者：Tabor\n日期：2025年09月12日\n记录自己发现的好玩、有趣的事情、工具等。\n封面图 # 梅拉尼娅小镇游玩，拍到的天空与大树，仰望天空，心情都变得纯净了。\n趣玩工具 # Zuoban/tts-TTS # Zuoban/tts-TTS是一个简单易用的文本转语音 (TTS) 服务，基于 Microsoft Azure 语音服务，提供高质量的语音合成能力。同类的项目还有https://github.com/rany2/edge-tts。TTS配合读书软件Reeden使用，真的很棒，详《Docker部署基于微软语音服务，在Reeden中使用》。\nReeden-阅读软件 # Reeden是一款功能强大的纯本地电子书阅读器，支持多种格式，提供丰富的阅读体验和个性化设置。它可以导入自定义TTS，今天我就尝试部署开源的Zuoban-TTS，然后导入Reeden进行书籍阅读，详细介绍见《我终于找到满意的阅读软件-强烈安利》。\nEveryone-Can-Use-English # Everyone-Can-Use-English，人人都能用英语，GitHub 上 2 万收藏！英语学习的开源工具，项目还推出了网页版，可以更方便的在手机、iPad等设置使用。\nOpenList Desktop # OpenList Desktop 是使用Rust写的一个功能强大的跨平台桌面应用程序，为管理 OpenList 服务和通过 Rclone 进行本地挂载提供用户友好的界面。之前Alist的桌面版还收费，OpenList直接开源免费，太赞了。\nCatime-效率小工具 # Catime 是C语言写的一款超轻量级的Windows倒计时工具，具有番茄钟功能，透明界面和丰富的自定义选项，仅占用几MB内存，几乎不消耗CPU资源，优雅地帮助您在Windows上管理时间。\nPicSharp-图片压缩 # PicSharp是使用Rust写的一个具有现代化UI、双引擎智能压缩、功能齐全、高性能、跨平台的图像压缩工具。\nLocalSqueeze-图片压缩 # LocalSqueeze是一款可以压缩图片的桌面端应用(图片压缩工具)，只在本地运行。不限大小、不限数量。安全、快速、高质量。\nCaesium Image Compressor-图片压缩 # Caesium Image Compressor是一个图像压缩软件，可以帮助您存储，发送和共享数字图片，支持JPG，PNG，WebP和TIFF格式。您可以通过保持图像的整体质量来快速减小文件大小。\n椰果IDM - 智能视频下载管理器 🔥🔥🔥🔥 # 椰果IDM是基于PyQt5开发的现代化视频下载管理器，支持多平台视频解析和批量下载，支持YouTube、Bilibili、网易云音乐等主流视频平台。PS：最近正好要给孩子下载一些油管视频，正好用上了，下载速度很不错。\n趣哪玩儿 # 梅拉尼亚小镇 # 上周末全家一起去了梅拉尼娅小镇，拍照很出片。\n‍\n趣书影音 # 本周读完了《框架的胜利》，《西游八十一案 : 大唐梵天记》、《养育男孩》在读中。\n趣学资源 # Ko-fi # Ko-fi是一个面向创作者的数字创意平台，旨在为他们提供一种简单而灵活的方式来接受他们的粉丝的支持和鼓励，以便能够更加专注于创作和创新。 这个平台可以让创作者轻松地创建自己的个人页面，发布内容、作品和服务，并接受来自粉丝的喜爱之饮（coffee）式小额打赏和捐助。\nLearn with MIT # MIT Learn 是麻省理工学院（MIT）推出的一个 AI驱动的终身学习平台，旨在为全球学习者提供便捷的学习资源。该平台整合了来自MIT各个院系的 超过12,700个学习资源，包括课程、教学资料、视频和播客等，用户可以一站式获取所需内容。MIT Learn 的目标是满足学习者的好奇心，并与MIT建立长期的教育关系。\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n‍\n","date":"2025年9月12日","externalUrl":null,"permalink":"/post/fun-weekly-issue-005-looking-up-at-the-sky-and-looking-at-the-big-trees-z2ngxfd.html","section":"Blogs","summary":"","title":"趣玩周刊（第 005 期）：仰望天空看大树","type":"blogs"},{"content":"作者：Tabor\n日期：2025 年 09 月 5 日\n记录自己发现的好玩、有趣的事情、工具等。\n封面图 # 小红书网友 AI 制作的图“一墨万象 绝美东方意境”，很喜欢这种自然美。\n趣玩工具 # AionUi-Gemini CLI # AionUi 为 Gemini CLI 提供了强大的 GUI 界面，增强聊天体验，多任务处理，代码差异视图，文件和项目管理，详情查看介绍文章。\nSTranslate-桌面翻译工具 # STranslate，一款即用即走的翻译、OCR 工具。个人之前使用翻译软件是 Pot，感觉 STranslate 更优秀些，WebDAV、TTS 等功能更完善，替换啦！\nZread-GitHub项目阅读 # Zread 是一款由智谱 AI 推出的、AI 驱动的、免费的 Github 项目阅读神器，它通过结构化代码分析与深度知识萃取，一键生成清晰易懂的 GitHub 项目中文文档，旨在帮助开发者快速掌握优秀项目的核心架构、实现逻辑与最佳实践。在线访问地址：https://zread.ai。\ntillywork-项目管理 # tillywork（项目地址：https://github.com/tillywork/tillywork）是开源工作管理解决方案，在一个地方管理您的冲刺、项目和销售渠道。\nPear-rec-录屏工具 # Pear-rec 是一款免费、开源的跨平台桌面端截图录屏软件，支持 Windows、macOS 和 Linux 系统，旨在提供简洁高效的屏幕捕捉与媒体处理功能。\nzuoban/tts-免费自建TTS # zuoban/tts 是一个简单易用的文本转语音 (TTS) 服务，基于 Microsoft Azure 语音服务，提供高质量的语音合成能力，具体介绍可看《Docker 部署基于微软语音服务，在 Reeden 中使用》。\nTrendRadar-新闻资讯阅读 # TrendRadar，最快 30 秒部署的热点助手 —— 告别无效刷屏，只看真正关心的新闻资讯。\n‍\nRes-downloader-资源下载工具 # Res-downloader 是一款基于 Go+Wails（部分版本基于 electron-vite-vue）开发的跨平台网络资源嗅探下载器，支持从视频号、抖音、快手、小红书、酷狗音乐、QQ 音乐等多个平台下载视频、音频、图片、m3u8 及直播流等资源，具备高清无水印下载、持续更新、易用性强、开源免费等特点，但需注意合法合规使用。\nMarkFlowy-Markdown 编辑器 # MarkFlowy 一个 Markdown 编辑器，但是更轻快、更智能、更纯粹，很有潜力替代 Typora。\nPixtrim-在线图片压缩 # Pixtrim 是一个免注册，直接使用，在线图片裁剪与压缩工具，已放入自己的导航收藏。\nCaesium-image-compressor-桌面端图片压缩工具 # Caesium-image-compressor 是一款开源的图像压缩软件，旨在帮助用户高效地存储、发送和分享数字图片，同时保持图像的整体质量。主要使用 C++ 和 Rust 编写，确保高性能与稳定性，是我目前电脑端最常用的图片压缩工具，批量处理图片很方便。\nFile-transfer-go-文件加密传输 # File-transfer-go 是一个开源的 P2P 文件传输工具，使用 Go 和 React 开发，通过 WebRTC 实现端到端加密传输，支持文件/文字/桌面共享、实时连接状态同步和响应式设计，安全，隐私，数据不经过服务器。\n‍\n趣书影音 # 本周读完了《桃花源没事儿》，《西游八十一案 : 大唐梵天记》在读中。\n趣学资源 # 拼音发音天天练、单词天天练 # 推荐 2 个小程序，微信看到有人推广，还得加了对方微信才肯发资源，小孩学习用，还不错，就开启有个小广告可以跳过，学习过程中没有广告，很赞。\n宝宝学英语 # 应用商店搜索“宝宝学英语”，免费下载，免费使用，不错。\n趣学知识 # 普通人破局的关键点：道心比天赋更重要 # 《凡人修仙传》韩立的生存哲学：\n实力不够的时候，就先苟着猥琐发育；当实力差不多了，也还是要占据绝对优势才能出手。 成功靠的是长期的坚持和「理性的耐心」。 央视网点评《凡人修仙传》：人生如修行，寻道亦寻己。\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n‍\n","date":"2025年9月5日","externalUrl":null,"permalink":"/post/fun-weekly-issue-004-life-is-like-practicing-seeking-the-way-and-finding-oneself-ztrjof.html","section":"Blogs","summary":"","title":"趣玩周刊（第 004 期）：人生如修行，寻道亦寻己","type":"blogs"},{"content":"","date":"2025年9月3日","externalUrl":null,"permalink":"/tags/docker/","section":"Tags","summary":"","title":"Docker","type":"tags"},{"content":"Reeden是一款功能强大的纯本地电子书阅读器，支持多种格式，提供丰富的阅读体验和个性化设置。它可以导入自定义TTS，今天我就尝试部署开源的Zuoban-TTS，然后导入Reeden进行书籍阅读。\n📢 软件介绍 # 一个简单易用的文本转语音 (TTS) 服务，基于 Microsoft Azure 语音服务，提供高质量的语音合成能力。\n项目地址：https://github.com/zuoban/tts\n功能特点\n支持多种语言和声音 可调节语速和语调 支持多种输出音频格式 兼容 OpenAI TTS API 支持长文本自动分割与合并 提供 Web UI 和 RESTful API 🖼Docker 部署 # NAS 用户推荐 Docker 部署。创建 docker-compose.yml 文件。\nservices: tts: # 服务名称 image: zuoban/zb-tts # 使用的镜像 container_name: tts # 容器名称 ports: - \u0026#34;8080:8080\u0026#34; # 端口映射(主机:容器) # volumes: # - \u0026#34;./config.yaml:/configs/config.yaml\u0026#34; # 配置文件 restart: unless-stopped # 建议添加自动重启策略 ​docker-compose up -d 启动服务(-d 为后台运行)\n部署完成后，访问 http://localhost:8080 使用 Web 界面。\n‍\n💻Cloudflare Worker 部署 # 熟悉Cloudflare可以使用Worker进行部署。\n创建一个新的 Cloudflare Worker：登录 Cloudflare，点击 Workers -\u0026gt;Workers \u0026amp; Pages -\u0026gt;创建 -\u0026gt;“从 Hello World! 开始” -\u0026gt;部署，然后编辑。 复制以下脚本内容到 Worker worker.js，预览下方刷新下即可看到部署好的应用。 添加环境变量 API_KEY​ Workers \u0026amp; Pages -\u0026gt; Your Worker -\u0026gt; Settings -\u0026gt; Variables and Secrets -\u0026gt; Add Type: Secret, Name: API_KEY, Value: YOUR_API_KEY​ 点击Cloudflare Worker提供的域名链接，输入自己设置的API Key，点击保存就可以使用了。 有域名的可以绑定下自己的域名，使用更方便。 ⚙️ 使用方法 # API 使用 # 基础 API # # 基础文本转语音# 基础文本转语音 curl \u0026#34;http://localhost:8080/tts?t=你好，世界\u0026amp;v=zh-CN-XiaoxiaoNeural\u0026#34; -o output.mp3 # 调整语速和语调 curl \u0026#34;http://localhost:8080/tts?t=你好，世界\u0026amp;v=zh-CN-XiaoxiaoNeural\u0026amp;r=20\u0026amp;p=10\u0026#34; -o output.mp3 # 使用情感风格 curl \u0026#34;http://localhost:8080/tts?t=今天天气真好\u0026amp;v=zh-CN-XiaoxiaoNeural\u0026amp;s=cheerful\u0026#34; -o output.mp3 OpenAI 兼容 API # 需要有 openai 的 api key 才能使用。\ncurl -X POST \u0026#34;http://localhost:8080/v1/audio/speech\u0026#34; \\ -H \u0026#34;Content-Type: application/json\u0026#34; \\ -d \u0026#39;{ \u0026#34;model\u0026#34;: \u0026#34;tts-1\u0026#34;, \u0026#34;input\u0026#34;: \u0026#34;你好，世界！\u0026#34;, \u0026#34;voice\u0026#34;: \u0026#34;zh-CN-XiaoxiaoNeural\u0026#34;, \u0026#34;speed\u0026#34;: 0.5 }\u0026#39; -o output.mp3 Reeden 中使用 # 新建文件 zuoban-tts.json，把下面内容复制进去，http://192.168.3.1:8080 ​设置为自己的地址，保存。\n{ { \u0026#34;url\u0026#34;: \u0026#34;http://192.168.3.1:8080/v1/audio/speech\u0026#34;, \u0026#34;name\u0026#34;: \u0026#34;Zuoban TTS Yunxi (Male-PublicIpv4)\u0026#34;, \u0026#34;voice\u0026#34;: \u0026#34;zh-CN-YunxiNeural\u0026#34;, \u0026#34;sex\u0026#34;: 1, \u0026#34;locale\u0026#34;: \u0026#34;zh-CN\u0026#34;, \u0026#34;group\u0026#34;: \u0026#34;Custom Zuoban TTS\u0026#34;, \u0026#34;tags\u0026#34;: [\u0026#34;custom\u0026#34;, \u0026#34;chinese\u0026#34;, \u0026#34;male\u0026#34;], \u0026#34;params\u0026#34;: { \u0026#34;method\u0026#34;: \u0026#34;POST\u0026#34;, \u0026#34;headers\u0026#34;: { \u0026#34;Content-Type\u0026#34;: \u0026#34;application/json\u0026#34; }, \u0026#34;body\u0026#34;: \u0026#34;{\\\u0026#34;model\\\u0026#34;: \\\u0026#34;tts-1\\\u0026#34;, \\\u0026#34;input\\\u0026#34;: \\\u0026#34;{{text}}\\\u0026#34;, \\\u0026#34;voice\\\u0026#34;: \\\u0026#34;zh-CN-YunxiNeural\\\u0026#34;, \\\u0026#34;speed\\\u0026#34;: 1.0}\u0026#34; } }, { \u0026#34;url\u0026#34;: \u0026#34;http://192.168.3.1:8080/v1/audio/speech\u0026#34;, \u0026#34;name\u0026#34;: \u0026#34;Zuoban TTS Yunxi (Male-PublicIpv4)\u0026#34;, \u0026#34;voice\u0026#34;: \u0026#34;zh-CN-YunxiNeural\u0026#34;, \u0026#34;sex\u0026#34;: 1, \u0026#34;locale\u0026#34;: \u0026#34;zh-CN\u0026#34;, \u0026#34;group\u0026#34;: \u0026#34;Custom Zuoban TTS\u0026#34;, \u0026#34;tags\u0026#34;: [\u0026#34;custom\u0026#34;, \u0026#34;chinese\u0026#34;, \u0026#34;male\u0026#34;], \u0026#34;params\u0026#34;: { \u0026#34;method\u0026#34;: \u0026#34;POST\u0026#34;, \u0026#34;headers\u0026#34;: { \u0026#34;Content-Type\u0026#34;: \u0026#34;application/json\u0026#34; }, \u0026#34;body\u0026#34;: \u0026#34;{\\\u0026#34;model\\\u0026#34;: \\\u0026#34;tts-1\\\u0026#34;, \\\u0026#34;input\\\u0026#34;: \\\u0026#34;{{text}}\\\u0026#34;, \\\u0026#34;voice\\\u0026#34;: \\\u0026#34;zh-CN-YunxiNeural\\\u0026#34;, \\\u0026#34;speed\\\u0026#34;: 1.0}\u0026#34; } } } 然后在 Reeden 阅读软件中点击：我的-\u0026gt;语音朗读-\u0026gt;“\u0026hellip;”-\u0026gt;从文件导入，选择 zuoban-tts.json，就可以使用 Zuoban TTS 进行书籍朗读了。\n‍\n📒 参考文章 # https://github.com/zuoban/tts ‍\n","date":"2025年9月3日","externalUrl":null,"permalink":"/post/docker-deployments-are-based-on-microsoft-azure-voice-service-tts-z13xyas.html","section":"Blogs","summary":"","title":"Docker部署基于 Microsoft Azure 语音服务（TTS）","type":"blogs"},{"content":"作者：Tabor\n日期：2025 年 08 月 29 日\n记录自己发现的好玩、有趣的事情、工具等。\n封面图 # 本周使用 Trae 写了一个任务管理工具 TaskGo，可以很方便的进行各种任务计划，支持桌面端和 Docker 部署，后续计划实现更多新功能，替代微信文件助手，更方便快捷的记录、收藏、分享一些琐碎的灵感、计划、待办等。\n趣玩工具 # Neo ebooks # Neo ebooks 是一个方便好用的在线电子书在线工具，格式转换、epub 编辑等。\nGhost Downloader-智能下载器 # Ghost Downloader 是新一代智能下载器，AI 赋能的跨平台 Fluent Design 下载器。PS：下载体验真不错，打算暂时先替代 NDM ​啦。\nMarkFlowy-Markdown 编辑器 # MarkFlowy 是一款 开源 的 Markdown 编辑器应用，支持 Windows、Linux 和 macOS，旨在提供 更高效 、舒适 的编辑体验。PS：与 zditor ​一样，都是 Rust 写的 Markdown 工具，待进一步观察哪个更好用，目前仍坚持用 Sublime Text。\nMazanoke-Doker 自托管图片压缩 # Mazanoke 是一个自托管的图片压缩工具。\nQuickClipboard 剪切板工具 # QuickClipboard 是一款为 Windows 设计的高效剪贴板管理工具，支持文本、图片与文件的历史记录管理，并配备多种便捷操作方式，让剪贴板使用更加流畅与智能。PS：本周最喜欢的工具，代替了之前使用了很久的 Clibor。\n‍\nTrendRadar-自托管新闻聚合 # TrendRadar，最快 30 秒部署的热点助手 —— 告别无效刷屏，只看真正关心的新闻资讯。一键监控今日头条、百度热搜、微博、抖音、知乎、B 站等 35 个平台，智能关键词筛选，自动生成热点分析报告。\n微软开源 TTS # 微软最新开源的 VibeVoice TTS 模型，可一次生成 90 分钟连续语音，支持 4 个不同说话人，超越了以往许多模型通常仅支持 1-2 位说话者的限制。\nIntrascribe # Intrascribe 是面向企业、学校与机关等内网环境的本地优先语音转写与协作平台。私有化部署，内网适用的语音转录总结工具，完整的前后端代码。\nNano Banana # Google Gemini-2.5-flash-imagge-priview 就是 Nano Banana，话说 Nano Banana 模型生成的 AI 真实手办效果图，真的很逼真。\nCitywalki # Citywalki，这个网站让你感受在世界 200 多个城市步行/开车/飞无人机。选择城市和移动方式后，它会全屏播放相应的 Youtube 视频，体验不错。\nFree Tinypng 免费图片压缩 # Free Tinypng 是一款智能的 Webp、JPEG、PNG 图片压缩工具。\n‍\n趣书影音 # 《西游八十一案》 # 最近在读《西游八十一案》，本周读完了《西游八十一案：西域列王纪》，接下来读《西游八十一案 : 大唐梵天记》\n趣学知识 # 久坐一族如何缓解腰背酸痛 # 久坐一族如何缓解腰背酸痛——核心训练是减轻腰痛、减少腰痛最有效的措施。\n减轻腰痛最有效的干预措施是普拉提、身心锻炼和基于核心肌肉的锻炼，减少残疾的最有效干预措施是普拉提、力量训练和基于核心肌肉的锻炼。\n美政府“白嫖”英特尔股份 # 美国政府以 89 亿美元“巧妙”收购英特尔 10% 股份，特朗普高调宣称“零成本赚 110 亿”。这场交易绝非普通的商业操作，而是一场精心设计的权力绞杀——政府用承诺的资金“套牢”企业，将英特尔绑上国家战车，更揭开美国科技战略的残酷真相：在霸权面前，市场规则只是权力的装饰品。\n关于耐心的思考 # 好文推荐：《年轻的朋友，咱们不要太心急：关于耐心的 3 点思考》\n人们总是高估一天之内能做的事，低估一年之内能走多远。\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月29日","externalUrl":null,"permalink":"/post/fun-weekly-issue-003-taskgo-z2dlblp.html","section":"Blogs","summary":"","title":"趣玩周刊（第 003 期）：TaskGo","type":"blogs"},{"content":"作者：Tabor\n日期：2025年08月22日\n记录自己发现的好玩、有趣的事情、工具等。\n封面图 # ​\n江苏怡园的石榴提前红透了，很喜欢这样自然的风景。\n趣玩工具 # 浏览器插件-Maple # Maple 书签一键唤起，支持设置搜索收起，速度更快。标签页支持更多效果，并支持切换刷新，新增文艺复兴风格。纯白简洁主题支持选中效果深一点颜色，看着更舒服。\n浏览器插件-FluentRead # FluentRead，开源的沉浸式翻译，一款革命性的浏览器翻译插件，让所有人都能够拥有母语般的阅读体验。\n浏览器插件-GoTab # GoTab 新标签页，精简不凡！\n之前一直使用的是Chrome插件Infinity，最近发现这个开源的可私有化部署的插件，尝试了下还不错。\nEasyVoice # EasyVoice是一款开源文本转语音工具，支持超长文本，多角色配音。\nMyTips # MyTips是一个基于 Rust + Tauri 构建，本地优先的智能笔记与知识管理平台，一款专为开发者和知识工作者打造的现代化桌面应用，致力于打造一个安全、智能、高效的个人知识管理中心，将笔记记录、AI 对话、剪贴板管理完美融合，帮助您构建属于自己的知识体系。（还在开发初期，正在不断更新中）\nPdfTocExtractor # PdfTocExtractor 是一个纯 C# AOT 实现的轻量级PDF目录提取工具，用于从PDF文件中提取目录（TOC）并导出为多种格式。支持Markdown、JSON、XML、纯文本等格式，完全摆脱命令行依赖，无需额外的PDF处理工具，适合在 .NET 项目中内嵌、分发或集成自动化流程中使用。\n趣哪玩儿 # Party Day # 上周六带孩子来深圳龙岗万达广场六楼【Party Day运动超乐场】游玩，很赞。\n趣书影音 # 《浪浪山小妖怪》 # 全家一起看了今年暑期最火的《浪浪山小妖怪》，搞笑又很有内涵。\n《凡人修仙传》 # 2020年开追的《凡人修仙传》，今天看到第156集，韩立终于结婴了✌️\n《西游八十一案》 # 最近在读《西游八十一案》，读完了《西游八十一案：大唐泥犁狱》，接下来读《西游八十一案 : 西域列王纪》\n‍\n","date":"2025年8月22日","externalUrl":null,"permalink":"/post/fun-weekly-issue-002-the-little-monster-in-langlang-mountain-2oefqm.html","section":"Blogs","summary":"","title":"趣玩周刊（第 002 期）：《浪浪山小妖怪》","type":"blogs"},{"content":" 集中绿地规范要求 # 《住宅项目规范》G8 55038-2025 # 全文强条规范《住宅项目规范》G8 55038-2025，第3.2.2条要求“居住街坊内应设集中绿地，并应符下列规定”：\n新区建设项目人均集中绿地面积不应小于0.50m²，旧区改建项目人均集中绿地面积不应小于0.35m²；\n集中绿地宽度不应小于8m；\n集中绿地中，在标准的建筑日照阴影线范围之外的绿地面积占比不应小于1/3，并应设老年人和儿童活动场地。\n《绿色建筑评价标准》GBT50378-2019（2024年版） # 《绿色建筑评价标准》GBT50378-2019（2024年版）第8.2.3条得分项要求“充分利用场地空间设置绿化用地,评价总分值为16分,并按下列规则评分”：\n住宅建筑按下列规则分别评分并累计:\n绿地率达到规划指标105%及以上，得10分；\n住宅建筑所在居住街坊内人均集中绿地面积，按表8.2.3 的规则评分，最高得6分。\n​\n其中条文解释要求“集中绿地宽度不小于8m，面积不小于400平方米，并有不少于1/3的绿地面积在标准的建筑日照阴影线范围之外，并在此区域设置供儿童、老年人户外活动场地，为老年人及儿童在家门口提供日常游憩及游戏活动场所。 ”\n​\n对比可以看出，绿建得分要求更为严格些，对集中绿地得最小面积有要求，不少于​400m² 。\n标准疑问 # 现行《城市居住区规划设计标准》为GB50180-2018，其中4.0.7条要求并未对集中绿地面积提出要求。\n《城市居住区规划设计标准》为GB50180-2018集中绿地要求 ​\n那么，关于集中绿地不少于400m²的要求，是来自哪里的呢？查阅了下历史版本的GB50180，发现GB50180-2016、GB50180-2002第7.0.4.2中有关于不小于400m²的要求：“公共绿地应同时满足宽度不小于8ｍ、面积不小于400m2和本条第1款(2)、(3)、(4)项及第(5)项中的日照环境要求”。因此个人认为，标准《城市居住区规划设计标准》为GB50180-2018已经取消了集中绿地不小于400m​2​的要求，《绿色建筑评价标准》GBT50378自2014版开始对集中绿地提出要求，引用了GB50180-2002对于集中绿地的要求，但《绿色建筑评价标准》GBT50378 2019版及2024年版，条文解释中关于集中绿地不小于400m​2​的要求很有可能是​未按GB50180-2018版的要求进行更新 ；也有可能是​故意提升绿建对本条的要求 。\n总结 # 如项目绿建设计考虑第8.2.3条集中绿地得分，集中绿建需满足“宽度不小于8m，面积不小于400平方米，并有不少于1/3的绿地面积在标准的建筑日照阴影线范围之外，并在此区域设置供儿童、老年人户外活动场地，为老年人及儿童在家门口提供日常游憩及游戏活动场所”；如不考虑得分，只是满足建筑强条要求，可不考虑集中绿地面积不少于400平方米的要求，建筑及景观设计需复核计算项目集中绿地是否可以满足强条要求。\n新建小区应满足：设计集中绿地面积 ≥ 小区总户数×​3.2×0.50**\n旧区改建小区应满足：设计集中绿地面积 ≥ 小区总户数×​3.2×0.35**\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月19日","externalUrl":null,"permalink":"/post/residential-project-specifications-concentrated-greenland-design-requirements-zo7vbc.html","section":"Blogs","summary":"","title":"《住宅项目规范》“集中绿地”设计要求","type":"blogs"},{"content":"","date":"2025年8月19日","externalUrl":null,"permalink":"/tags/%E7%BB%BF%E8%89%B2%E5%BB%BA%E7%AD%91/","section":"Tags","summary":"","title":"绿色建筑","type":"tags"},{"content":"哈喽，各位互联网“冲浪儿”和数据存储爱好者们！ 每天和图片打交道，你是否遇到过这些糟心事：免费图床动不动就限制流量、图片加载慢如蜗牛？购买的云存储又感觉每年都在“割肉”？更重要的是，数据隐私和主权，难道不应该牢牢掌握在自己手中吗？\n别担心！今天，我就来给大家介绍一个完美的解决方案：Minio 分布式对象存储 + PicList 图床工具！这套组合拳能让你搭建一个完全属于自己的、高性能、高可用的私有图床，彻底告别图床的烦恼，把图片数据完全掌握在自己手里！\n废话不多说，让我们一起动手，打造属于你自己的数据堡垒吧！\n📢软件介绍 # 在动手之前，我们先来聊聊为什么 Minio 值得你的投入：\n数据主权，完全掌控： 照片、重要文件都存在第三方服务器上，你真的放心吗？Minio 让你将数据存储在自己的物理服务器或 VPS 上，拥有数据的绝对控制权。 S3 兼容，生态丰富： Minio 完整兼容亚马逊 S3™ 云存储服务的 API 接口。这意味着你可以无缝对接市面上几乎所有支持 S3 的工具和应用，PicList 只是其中之一！ 分布式架构，高可用可扩展： 顾名思义，“分布式”是 Minio 的一大亮点。它支持将数据分散存储在多台服务器上，通过纠删码（Erasure Code）机制，即使部分硬盘或服务器故障，数据依然能够完整恢复，大大提升了存储的可靠性和可用性。未来需要扩展存储容量时也更方便。 成本效益，一劳永逸： 一次投入服务器硬件或租用服务器，后期基本没有额外的存储费用。长期来看，比购买商业云存储划算得多，尤其是像图床这种需要长期存储大量“小文件”的场景。 高性能，访问飞速： Minio 专为高性能而设计，无论是上传还是下载，速度都非常快，能为你的网站或应用提供流畅的图片访问体验。 总之，Minio 是一个兼顾性能、可靠、安全、经济的自建存储方案，非常适合作为个人或小型团队的私有图床。不过，自2025年6月，MinIO官方删除了11万行​​Web 控制台​​相关代码，功能大打折扣，推荐大家使用2025年4月22日及之前版本，最好把docker库也备份下。\n项目地址：https://github.com/minio/minio\n🛠️ Minio 分布式对象存储部署 # 虽然标题是“分布式”，但为了方便大家理解和快速上手，我们将展示一个基于 Docker Compose 的单节点 Minio 部署方案。这足以满足大多数个人用户的需求，并且你可以随时根据需求扩展到真正的多节点分布式集群。\n准备工作： # 一台安装了 Docker 和 Docker Compose 的 Linux 服务器 (推荐)。 （Windows 或 macOS 也可以，但生产环境通常用 Linux。） 足够的硬盘存储空间，用于存放你的图片数据。 了解端口映射和文件路径。 部署步骤： # 第一步：创建数据存储目录 # 在你的服务器上选择一个位置，创建用于存放 Minio 数据的目录。例如：\nmkdir -p /docker/minio/minio_data mkdir -p /docker/minio/minio_config # 用于存放Minio的配置 第二步：创建 Docker Compose 文件 # 在 /opt/minio/ 目录下创建一个 docker-compose.yml 文件：\nservices: minio: image: minio/minio:RELEASE.2025-04-22T22-12-26Z # 不要使用最新版 container_name: minio restart: unless-stopped environment: - TZ=Asia/Shanghai - MINIO_ROOT_USER=minioadminuser # 管理员账号 - MINIO_ROOT_PASSWORD=minioadminpassword # 管理员密码 ports: - 9000:9000 # Minio API端口 (供PicList等工具访问) - 9001:9001 # Minio 控制台端口 (Web界面) volumes: - ./minio_data:/data - ./minio_config:/root/.minio command: minio server /data --console-address \u0026#34;:9001\u0026#34; healthcheck: test: [\u0026#34;CMD\u0026#34;, \u0026#34;curl\u0026#34;, \u0026#34;-f\u0026#34;, \u0026#34;http://localhost:9000/minio/health/live\u0026#34;] interval: 15s timeout: 10s retries: 5 networks: app-tier: driver: bridge 一点说明：\n​MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 是你管理 Minio 的超级管理员账号和密码，务必修改成复杂且安全的密码！ ​9000 端口是 Minio 的数据 API 端口，PicList 等工具会通过这个端口访问。 ​9001 端口是 Minio 的 Web 控制台端口，你可以在浏览器管理 Minio。 ​/minio_data 是 Minio 在容器内部存储数据的默认路径，我们通过 volumes 映射到宿主机的 /opt/minio/data。 关于分布式部署： 这个 docker-compose.yml 是单节点部署。如果需要部署真正的分布式 Minio，command 会改为 minio server /data{1...N} 或指定多个盘符，并且需要多台服务器协同工作，每台服务器上的 Minio 实例通过 MINIO_VOLUMES 指定其负责的存储路径。对于个人私有图床，单节点部署已足够强大。 第三步：启动 Minio 服务 # 在 /opt/minio/ 目录下执行以下命令：\ndocker-compose up -d ​-d 参数表示在后台运行。\n第四步：访问 Minio 控制台 # 打开你的浏览器，访问 http://你的服务器IP:9001。\n使用你在 docker-compose.yml 中设置的 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 登录。\n登录后，你可以在界面上创建“桶 (Bucket)”，桶就是你存储文件的容器。\n⚙️MinIO设置 # 创建用户并设置Access Key # 点击Identity-Users-Create User，创建用户\n点击用户名-Create Access Key，设置访问权限。\n记录好创建的Access Key 和Secret Key。\n创建存储桶并设置权限 # 点击Buckets，创建存储桶，例如命名为 images。\n为存储桶设置权限为public（作为图床使用时，需设置为Public）\n🌐域名及反向代理 # NPS进行内网穿透，需要把9000、9001都进行穿透 服务器开放9000、9001端口 1Panel进行反向代理，https://minio.yuming.com 反向代理9001，Minio 控制台端口 (Web界面)；https://img.yuming.com 反向代理9000，Minio API端口 (供PicList等工具访问)。 🖼️ PicList 图床设置 # 现在 Minio 对象存储已经部署好了，接下来我们把上传工具 PicList 和它连接起来。PicList 是备受推崇的跨平台图床管理工具，它功能强大，插件丰富，支持多种图床，当然也完美兼容 Minio，设置如下：\n✅ 总结与展望 # 恭喜你！到这里，你已经成功部署了 Minio 分布式对象存储，并将其与 PicList 连接，搭建了属于你自己的私有图床。从此，你的图片上传将变得更自主、更安全、更高效！\n这套方案不仅适用于图片，你还可以用 Minio 存储各种文件，比如文档、视频、备份数据等等。结合 Minio 强大的 S3 兼容性，你可以探索更多应用场景，例如：\n静态网站托管： 将网站文件放到 Minio 上，通过 Nginx 反向代理或 CDN 实现快速访问。 Web 应用存储： 将用户上传的文件、应用程序日志等存储到 Minio。 备份和归档： 低成本地备份你的重要数据。 Minio 和 PicList 的组合，为你提供了强大的数据管理能力，让你真正掌握自己的数字资产。\n📒参考文章 # 部署私有对象存储服务: Minio MinIO最新社区版砍掉 Web 管理功能 不想白了，自己动手搭个图床MinlO+PicGo+Typora 如果你有任何疑问，或者在部署过程中遇到了问题，欢迎在评论区留言交流！让我们一起在数据自由的道路上越走越远！🚀 欢迎在评论区留言和大家一起交流！喜欢记得关注【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月18日","externalUrl":null,"permalink":"/post/minio-distributed-object-storage-deployment-and-piclist-graph-bed-setting-z2bsjvr.html","section":"Blogs","summary":"","title":"Minio分布式对象存储部署及PicList图床设置","type":"blogs"},{"content":" 自然通风（室外风环境模拟） # 条文要求 # 4.0.5 小区应专题论证自然通风效果，强化小区的自然通风，避免小区内出现空气滞流区，为小区内单体建筑利用自然通风创造有利条件，应符合下列要求：\n1 应根据小区所在位置的主导风向和风速进行小区自然通风模拟设计，改善小区自然通风。其中通风时段主导风向和风速见本标准附录 C，自然通风设计参考方法见本标准附录 D；\n2 模型建立时应将小区周边不少于 100m 范围内的建筑和地形等影响自然通风的因素考虑在内。未形成小区的居住建筑进行自然通风模拟设计时，应考虑建筑周边不少于 100m 范围内的建筑和地形等影响通风的因素；\n3 冬季主导风速和风向条件下，建筑物周围人行区域距地面 1.5m 高处的风速放大系数不应大于 2，风速不应大于 5m/s；除迎风面第一排建筑外，建筑迎风面与背风面压差不大于 5Pa；\n4 过渡季节、夏季主导风速和风向条件下，场地人行活动区域不应出现涡旋或无风区，50%以上可开启外窗室内外表面的风压差宜大于 0.5Pa；\n5 应对小区周边建筑自然通风利用效果的影响进行评估。\n附录 C：深圳市通风时段主导风向和风速 # 风速风向按下图取值。 龙华区大浪街道，风向NE、平均风速1.0m/s。未给出冬季模拟风速风向取值。 超高层建筑，地面粗糙系数按0.3取值。 ‍\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月18日","externalUrl":null,"permalink":"/post/2025-shenzhen-energysaving-design-standards-for-residential-buildings-sjg452025-key-articles-on-green-buildings-zgyzit.html","section":"Blogs","summary":"","title":"2025 深圳市《居住建筑节能设计标准》SJG-45-2025 绿色建筑重点条文","type":"blogs"},{"content":"目前 DeepLX 的最佳无服务器实现，专为 Cloudflare Workers 优化设计。通过智能代理端点轮换、高级限流算法和熔断器机制，几乎完全避免了 HTTP 429 错误，提供比 DeepL API 更高的请求速率限制和更低的网络往返时间。\n与付费的 DeepL API 不同，DeepLX 完全免费使用 - 无需 API 密钥、无订阅费用、无使用限制。只需部署一次，即可享受无限制的翻译请求，无需担心任何费用问题。\n最简单调用API方法 # 国人基于OwO-Network官方DeepLX深化，二次开发的DeepLX，可以很简单的进行API调用（https://dplx.xi-xu.me/translate），或者自己部署到Cloudflare Workers，详见 xixu-me/DeepLX说明，例如，在翻译软件Pot中，偏好设置-服务设置中添加DeepL，填写https://dplx.xi-xu.me/deepl即可。\nDocker Compose # 如果想自己使用OwO-Network官方DeepLX，通过Docker Compose自建翻译服务，使用方法如下：\nservices: deeplx: image: ghcr.io/owo-network/deeplx:latest restart: always ports: - \u0026#34;1188:1188\u0026#34; environment: - TOKEN=helloworld - DL_SESSION=xxxxxx 开始服务\nmkdir deeplx \u0026amp;\u0026amp; cd deeplx wget -O compose.yaml https://raw.githubusercontent.com/OwO-Network/DeepLX/main/compose.yaml docker compose up -d 使用方法\n使用API进行调用。\n参考文章 # xixu-me/DeepLX DeepLX官网教程 DeepLX Github 国人开发的DeepLX App 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月18日","externalUrl":null,"permalink":"/post/unlimited-free-deepl-translation-dkjju.html","section":"Blogs","summary":"","title":"无限制白嫖DeepL翻译","type":"blogs"},{"content":"","date":"2025年8月18日","externalUrl":null,"permalink":"/tags/%E6%80%9D%E6%BA%90%E7%AC%94%E8%AE%B0/","section":"Tags","summary":"","title":"思源笔记","type":"tags"},{"content":"今天知乎看到一篇文章，关于思源笔记的使用方法，感觉很不错，主要是把思源Docker部署，然后通过网页打包工具打包为客户端，达到本地使用效果，数据却能统一的目的。\n自己搭建完试了下，和桌面端没啥差异，配合打包为本地应用，桌面客户端可以卸载了，赞👍。\nDocker部署 # 新建docker-compose.yml services: main: image: b3log/siyuan network_mode: \u0026#34;host\u0026#34; restart: always #ports: #- 6806:6806 environment: - TZ=Asia/Shanghai - PUID=1000 # Customize user ID - PGID=1000 # Customize group ID command: [\u0026#39;--workspace=/siyuan/workspace/\u0026#39;, \u0026#39;--accessAuthCode=自己写一长串Code\u0026#39;] volumes: - ./workspace:/siyuan/workspace 执行命令docker-compose up -d​ 使用优化 # 浏览器访问http:127.0.0.1:6806 Lucky反向代理设置，配合EasyTier内网穿透 Tuboshu添加网址或者PakePlus打包网页为客户端 设置S3对象存储同步，定时手动进行同步（更节省流量） 配合TaoSync对数据自动备份 使用发布插件，把写好的文章同步发送到多个平台 参考文章 # 思源笔记docker搭建及后续使用优化 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月18日","externalUrl":null,"permalink":"/post/siyuan-notes-docker-construction-and-usage-optimization-1ainrv.html","section":"Blogs","summary":"","title":"思源笔记Docker搭建及使用优化","type":"blogs"},{"content":" 项目简介 # Zditor是一个智能高效的文档编辑体验，是一款类似 Typora 的文档编辑器，拥有更快的性能、智能 AI 辅助和 Git 集成。\n项目地址：https://zditor.com/zh 项目特点 # 所见即所得：轻松创建结构化文档，所见即所得，不需要记忆复杂的 Markdown 语法。 直观的编辑体验：Zditor 提供类似Notion的所见即所得编辑体验，让您专注于内容创作，而不是复杂的格式与语法。 全面兼容 Markdown：支持标准 Markdown 语法，并进行扩展，让您的文档更加丰富多彩。 极致性能优化：专为大型文档设计，解决传统编辑器的性能瓶颈。 实时保存：实时自动保存，Rust 实现核心逻辑，高性能低内存占用。 核心技术优化：确保 Zditor 在处理大型文档时依然保持流畅。 AI 智能集成：无缝对接主流AI模型，释放您的创作潜能。 使用体验 # 不是一个开源项目，下载后，需要使用邮箱注册，获取一个免费的License。 QQ邮箱半天获取不到License，改用Gmail才算搞定。 平湖电脑设备Licenson：8b83fcb-8c3b-47c0-85dc-63c20c3e4126 AI模型可以添加，但是暂不支持硅基流动、智普AI。 自己设置的openai-gemini、OpenRouter可以支持。 打开速度贼快，这点真的很赞，黑暗模式看着很舒服。 预测以后肯定会收费，目前版本免费，可以关注，老版本希望以后可以免费使用，注意保持历史版本。 AI功能使用体验还是很不错，比如可以对图片使用AI进行OCR。 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月18日","externalUrl":null,"permalink":"/post/zditor-experience-is-interesting-and-can-replace-typora-2cxevr.html","section":"Blogs","summary":"","title":"Zditor体验有感，可平替Typora！","type":"blogs"},{"content":" 简介 # TaoSync是一个适用于OpenList v3+的自动化同步工具/Sync for OpenList/AList。同步速度还是很不错的。详细教程可查看TaoSync作者文字 如何在绿联NAS中使用TaoSync同步我的文件到各个网盘\n部署 # docker-compose如下：\nservices: taoSync: image: dr34m/tao-sync:latest container_name: taoSync restart: always ports: - \u0026#34;8023:8023\u0026#34; volumes: - ./data:/app/data 启动项目\ndocker-compose up-d 使用技巧 # OpenList中存储中添加本地文件 OpenList中存储添加网盘 Docker登录后台,查看初始密码 登录后可以设置把本地文件备份到网盘 自己备份内容 # 相册：Photos 电子书：Mybook 服务应用：Docker 排除项规则 # taoSync规定的排除项根目录为同步来源或目标目录，例如你的来源目录为/baidu/pan/，使用规则/123321/将忽略目录/baidu/pan/123321/下的文件；使用/baidu/ 不会有效果。\n.* 表示忽略所有 . 开头的文件和目录 *.a 表示忽略所有 .a 结尾的文件 /a.jpg 表示仅仅忽略项目根目录下的 a.jpg 文件，不包括 /abc/a.jpg data/: 表示忽略data目录下的所有内容，不忽略 data 文件 /data: 表示忽略根目录下的data文件 /*.pdf: 表示忽略/a.pdf，不忽略 /doc/a.pdf **/a.txt: 表示忽略/a.txt,a/a.txt,a/b/a.txt等 a/**/b.txt: 表示忽略a/b.txt, a/x/b.txt,a/x/y/b.txt等 /mtk/do.doc 表示过滤某个具体文件 fd1/* 表示忽略/fd1/，/fd0/df1/等下所有文件 /fd1/* 表示忽略/fd1/下所有文件，不包括/fd0/fd1/,/fd2/fd1/等 定时运行设置 # 每周一早上7点运行\nday_of_week: 1 hour: 7 参考文章 # [Github TaoSync]https://github.com/dr34m-cn/taosync taoSync排除项简易教程 cron配置简介 如何在绿联NAS中使用TaoSync同步我的文件到各个网盘 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月18日","externalUrl":null,"permalink":"/post/taosync-automatically-backup-your-application-1c71d3.html","section":"Blogs","summary":"","title":"TaoSync，自动备份你的应用","type":"blogs"},{"content":"你是否经常为备份文件而烦恼，Kopia可以很好的解决你的问题。\nKopia 是一款开源的文件备份和同步软件，旨在提供高效、可扩展的数据管理解决方案。这款软件最初由 Jarek Kowalski开发，目的是为了提供一个跨平台的备份解决方案，可以支持个人和企业用户的数据保护需求。Kopia 的主要特点包括其独特的快照管理机制，支持增量备份和数据去重，这可以显著减少存储空间的需求。此外，Kopia 提供了强大的加密功能，确保数据在传输和存储过程中的安全性。Kopia 还支持多种存储后端，如本地磁盘、网络文件系统或云存储服务，提高了其灵活性和可用性。\n‍\n项目地址：https://github.com/kopia/kopia/ 核心功能介绍 # 增量备份：Kopia仅备份自上次备份以来发生变化的数据，这样可以大幅减少备份所需的时间和存储空间。 客户端端到端加密：所有备份数据在客户端进行加密，确保数据在传输和存储过程中的安全性，即使数据存储在第三方服务上也能保持私密性。 数据压缩与去重：Kopia使用高效的数据压缩算法和去重技术，进一步减少存储需求，优化备份性能。 多平台支持：Kopia不仅支持主流操作系统，还能适应多种存储后端，提供灵活的备份解决方案。 图形用户界面（GUI）：除了命令行界面外，Kopia还提供了图形用户界面，简化了备份和恢复的操作流程，即使是非技术用户也能方便使用。 快照挂载：用户可以将备份的快照挂载为虚拟磁盘，直接在文件系统级别访问备份数据，便于数据恢复和管理。 备份策略：Kopia允许用户设置详细的备份策略，包括保留策略、自动快照计划等，以满足不同的数据保护需求。 Kopia仓库（Repository）可以设置在本地、WebDAV、S3等地方，当你把仓库设置到云端时，备份文件夹为本地，就相当于在云端对本地文件夹进行了增量备份同步，比如对于Obsidian笔记等重要数据文件，你就可以使用他进行云端备份数据了。\n参考文章 # SuperMemo 自动备份\nKopia教程—一个开源文件备份工具\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月18日","externalUrl":null,"permalink":"/post/kopia-a-very-powerful-file-incremental-backup-and-synchronization-tool-2aoevm.html","section":"Blogs","summary":"","title":"Kopia，非常强大的文件增量备份与同步工具","type":"blogs"},{"content":"作者：Tabor\n日期：2025年08月15日\n记录自己发现的好玩、有趣的事情、工具等。\n封面图 # 上周六带儿子去爬了阳台山森林公园，龙溪桥溯溪非常好玩，夏天避暑好去处。\n趣玩工具 # 1. LiYing，自动化证件照处理 # 这个开源项目 LiYing 挺有趣，一套适用于自动化完成一般照相馆后期证件照处理流程的照片自动处理的程序，可以完成人体、人脸自动识别，角度自动纠正，自动更换任意背景色，任意尺寸证件照自动裁切，并自动排版。\n2. 微信 Markdown 编辑器 # 微信 Markdown 编辑器，沉浸创作，美由心生。我们致力于为您提供一个简洁、高效、美观的公众号文章排版工具。\n3. Everything AI Chat - 智能文件搜索客户端 # Everything AI Chat，一个现代化的 Everything 搜索客户端，将 AI 智能与极速本地搜索完美结合。支持自然语言查询，自动转换为 Everything 精确搜索语法，让文件搜索变得前所未有的简单和高效。\n4. 流畅阅读 # 流畅阅读，免费开源的浏览器双语翻译插件，让所有人都能够拥有基于母语般的阅读体验，沉浸式翻译开源替代。\n5. AIClient-2-API # ​AIClient2API 是一个多功能、轻量化的 API 代理，旨在提供极致的灵活性和易用性。它通过一个 Node.js HTTP 服务器，将 Google Gemini CLI 授权登录、OpenAI、Claude、Kiro 等多种后端 API 统一转换为标准的 OpenAI 格式接口。您只需在配置文件中轻松切换模型服务商，就能让任何兼容 OpenAI 的客户端或应用，通过同一个 API 地址，无缝地使用不同的大模型能力，彻底摆脱为不同服务维护多套配置和处理接口不兼容问题的烦恼。\n6. Ech0 # Ech0 是一款专为轻量级分享而设计的开源自托管平台，支持快速发布与分享你的想法、文字与链接。简单直观的操作界面，轻松管理你的内容，让分享变得更加自由，确保数据完全掌控，随时随地与世界连接。（还在开发初期，不完善，不支持标签）\n7. dockerCopilot # dockerCopilot，一个主打便捷的docker容器管理工具，一键更新容器。\n8. HubProxy # HubProxy，基于Go的自托管轻量级、高性能的多功能代理加速服务，提供 Docker 镜像加速、GitHub 加速、下载离线镜像等功能。单域名实现所有功能，支持仓库审计。流式转发，无缓存。\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n‍\n","date":"2025年8月14日","externalUrl":null,"permalink":"/post/fun-weekly-issue-001-dockercopilot-updates-container-with-one-click-z16s0qf.html","section":"Blogs","summary":"","title":"趣玩周刊（第 001 期）：dockerCopilot一键更新容器","type":"blogs"},{"content":"你是否也和我一样，为了方便地在文章、博客中插入图片，一直在寻找一款好用的图床工具？之前我一直使用的PicGo，也算陪伴我度过了一段美好的时光。但最近，我发现了PicList，体验之后，简直是真香警告！果断决定升级图床工具，从PicGo切换到PicList。PicList是一款高效的云存储和图床平台管理工具，基于PicGo深度二次开发，提供完整的图床功能和全面的云存储管理能力。今天就来分享一下我的升级之路，以及PicList到底有哪些吸引我的地方。\n为什么选择更换图床工具？ # 其实PicGo使用起来也还不错，但随着使用时间的增加，我渐渐发现它的一些局限性：\n配置复杂： 每次更换图床，都需要配置各种参数，对于我这种偶尔会手残的人来说，简直是折磨。 插件管理： 虽然PicGo支持插件，但是插件的质量参差不齐，有时候还会出现兼容性问题。 界面略显老旧： 这一点可能比较主观，但我确实觉得PicGo的界面有些过时了，缺乏新鲜感。 因此，我一直在寻找一款更加简洁、易用、功能强大的图床工具。\nPicList：让我眼前一亮的新选择 # 偶然的机会，我发现了PicList (https://piclist.cn/)。它的slogan是“下一代图床工具”，一下子就吸引了我的目光。抱着试试看的心态下载体验了一下，结果却让我惊喜连连。\n简洁易用的界面 # PicList的界面非常简洁，功能一目了然，即使是新手也能快速上手。告别了复杂的配置，支持webdav等方式备份恢复图床设置，省心！我可以轻松管理我的图床账户。\n强大的图床支持 # PicList支持市面上主流的图床，例如：\n阿里云OSS 腾讯云COS 七牛云 又拍云 GitHub SM.MS 丰富的功能特性 # 除了完全兼容PicGo的基本功能外，PicList还提供了很多实用的功能：\n扩展了内置图床平台：如WebDav、本地图床和SFTP等。 图片预处理：内置图像处理工具，如水印、压缩（上传前自动压缩图片，节省存储空间和流量）、缩放、旋转和格式转换，自动化处理图片。 相册云端删除：相册支持同步云端删除文件。 云存储管理：完整的多平台云存储管理功能，上传、下载、删除一站式解决。 自定义链接格式： 可以根据自己的需求，自定义图片的链接格式。 历史记录： 方便查找和管理之前上传的图片。 跨平台支持 # PicList支持Windows、macOS、Linux等多种操作系统，无论你使用什么平台，都能轻松使用。\n我的使用体验 # 自从更换到PicList后，我的工作效率明显提高。我可以更专注于写作，而不用把时间浪费在配置和管理图床上。\n更简洁： 配置简单，界面清爽，使用起来心情舒畅。 更高效： 拖拽上传，自动压缩，省时省力。 更安心： 稳定的图床服务，不用担心图片丢失。 总结 # 如果你也正在寻找一款好用的图床工具，不妨试试PicList。相信它会给你带来惊喜！\n你还在使用什么图床工具呢？欢迎在评论区分享你的经验，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月14日","externalUrl":null,"permalink":"/post/say-goodbye-to-picgo-and-embrace-piclist-the-way-to-upgrade-my-picture-bed-tool-2o7nes.html","section":"Blogs","summary":"","title":"告别PicGo，拥抱PicList：我的图床工具升级之路","type":"blogs"},{"content":"","date":"2025年8月14日","externalUrl":null,"permalink":"/tags/%E5%BB%BA%E7%AB%99/","section":"Tags","summary":"","title":"建站","type":"tags"},{"content":"你是否也曾有这样的困扰：用GitHub图床发布图片时，总出现像https://\u0026lt;用户名\u0026gt;.github.io/images/xxx.png这样的地址，既不专业，又容易记错，甚至分享给他人时还得解释复杂的路径？今天，我就带你解决这个难题——给GitHub图床设置自定义域名，让你的图片传播阵地变得更专业、更易记、更有品牌感！\n一、为什么要设自定义域名？ # 设置自定义域名为GitHub图床，主要有这三个好处：\n专业度升级：用自定义域名（如your-domain.com/img）替代GitHub默认的\u0026lt;用户名\u0026gt;.github.io，瞬间让图床更像你品牌的“官方资源库”，提升视觉传播的专业感。 易记更高效：别人复制图片链接时，再也不用记冗长的GitHub地址，只需要你的自定义域名+简单路径（如https://your-domain.com/img/logo.png），分享起来更方便，也更容易被记住。 品牌统一：如果你的网站、博客已经用了某个品牌域名，用自定义图床能让视觉元素与整体品牌风格完全统一，强化品牌认知度。 二、准备材料和工具（提前做好这些，操作更顺畅！） # 设置前，需要准备好以下东西：\nGitHub账号：必须有一个可正常登录、能管理仓库的GitHub账号。 自定义域名：需要一个已注册或即将注册的域名（如example.com），并且能通过注册商后台修改DNS设置。 域名注册商账号：需要能访问你注册的域名的注册商后台（如阿里云、腾讯云、Godaddy等）。 基本电脑操作能力：会使用浏览器访问GitHub、注册商后台，并添加DNS记录。 三、具体设置步骤（分4步完成，超简单！） # 以下是详细的设置流程，跟着步骤走，就能成功将GitHub图床换成自定义域名：\n步骤1：在GitHub里配置仓库为“GitHub Pages” # 首先，你需要把用作图床的仓库设置为“GitHub Pages”服务，这样才能让自定义域名指向该仓库的内容：\n打开你的GitHub仓库（假设你已经创建了专门用于图床的仓库，比如img-hosting）。\n点击仓库主页右上角的“Settings”（设置）按钮，进入仓库设置界面。\n在左侧菜单栏找到“Pages”选项，点击进入。\n在“Source”区域，选择你要展示的分支（通常是main或master），然后保存设置。此时，该仓库已经具备静态页面的基础功能啦～\n重点：需要在仓库根目录创建一个index.html网页文件，不然会出错后面。\n‍\n步骤2：在GitHub仓库内添加CNAME文件 # 接下来，需要在仓库里添加一个CNAME文件，告诉服务器自定义域名的指向：\n进入你刚才设置的图床仓库（比如img-hosting）。 在仓库的文件列表页面，点击顶部的“Add file”按钮，选择“Create new file”。 在“Name your file”处输入CNAME（注意大小写），然后点击“Commit changes”提交。 在新打开的CNAME文件中，填写你的自定义域名（例如img.your-domain.com，或者直接填顶级域名your-domain.com，根据你的需求选择），保存后再次提交。 步骤3：在域名注册商后台设置CNAME DNS记录 # 这一步需要回到你的域名注册商后台，修改域名的DNS设置：\n登录到你注册域名的注册商平台（如阿里云、腾讯云等）。\n找到当前域名的DNS管理入口（通常在“域名管理”→“DNS设置”或类似位置）。\n查找现有的A记录或CNAME记录（如果没有，需要新增），将其修改为指向GitHub Pages的CNAME地址。\n注意：如果是第一次设置，可能需要先添加一个CNAME记录，指向GitHub Pages的通用CNAME地址（如gh-pages.github.io，但这是旧版，现在推荐指向你的仓库对应的CNAME地址，比如\u0026lt;用户名\u0026gt;.github.io？不对，等一下，正确的应该是如果仓库是username/repo-name，则CNAME指向username.github.io，而如果是自定义域名，需要确保CNAME指向该仓库的GitHub Pages地址。其实更准确的是，当你把仓库设置为Pages后，GitHub会自动生成一个CNAME地址，你需要在注册商后台把你的域名CNAME指向该地址。不过可能更简单的说法是：“在域名注册商的后台，找到DNS管理，添加一个新的CNAME记录（如果有的话），将你的自定义域名的CNAME指向\u0026lt;用户名\u0026gt;.github.io（如果仓库名称是username），或者直接指向你的仓库对应的GitHub Pages地址。另外，也可以参考GitHub的帮助文档里的具体步骤，确保CNAME记录正确。不过为了通俗易懂，可以这样说：\n在域名注册商后台，找到你购买的域名的DNS设置页面，添加一条新的CNAME记录：\n记录类型：CNAME​ 主机记录（通常是@或www）：填写你的自定义域名（如www或直接留空表示根域名）， 记录值（Target）：填写\u0026lt;你的GitHub用户名\u0026gt;.github.io（比如你的用户名是siyuan，就填siyuan.github.io）， TTL（时间到）：一般选3600即可，保存后等待DNS解析生效（通常需要5-30分钟）。\n（注：如果是私有仓库，可能需要额外设置A记录指向IP地址，但通常公共图床用CNAME足够。） 步骤4：验证域名所有权（确保GitHub认可你的域名） # 为了让GitHub确认你是该域名的合法所有者，需要进行一次简单的验证：\n回到GitHub仓库的“Pages”设置页面，查看“Custom domain”（自定义域名）。\n如果看到“Verified”（已验证），说明验证成功；如果显示未验证，点击“Verify now”进行验证。\n通常验证的方式是在域名注册商后台添加一个TXT类型的DNS记录（记录值由GitHub提供），然后保存后返回GitHub确认。按照GitHub的提示操作即可完成验证。 验证完成后，等待一段时间（直到DNS记录完全生效），就可以通过你的自定义域名访问图床啦！\n四、效果测试（确认一切正常） # 完成上述步骤后，你可以通过以下方式测试自定义域名是否生效：\n打开浏览器，输入你的自定义域名（如http://your-domain.com），看是否显示了图床的静态页面（比如一个包含你上传图片的文件夹）。 测试图片链接：上传一张图片到GitHub图床仓库，然后通过自定义域名加上图片路径（如http://your-domain.com/img/your-image.png）访问，看是否显示正常。 分享链接：将自定义域名的图片地址发给朋友，让他们测试，确认没有问题。 在Picgo图床工具中设置如下。（如果不在仓库中添加index.html，自定义域名上传文件后的链接域名后会多出一个“/”，导致图片无法访问，是github自己的原因。） 总结：自定义域名的价值 # 通过以上步骤，你就完成了GitHub图床的自定义域名设置。现在，你的图片传播阵地不再受限于GitHub的默认命名，而是有了属于自己的专属标识。无论是提升专业度、增强易记性，还是实现品牌统一，自定义域名都能帮你达成目标。\n如果你在设置过程中遇到任何问题（比如DNS没生效、无法验证等），别着急！可以在评论区留言，我会帮你一起排查原因。当然，你也可以尝试搜索GitHub官方帮助文档或相关教程，获取更多细节指导～\n下次当你再发布图片时，是不是感觉更自信、更专业了呢？不妨试试给GitHub图床换个“门牌号”——自定义域名吧！ 🎉\n上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n​\n","date":"2025年8月14日","externalUrl":null,"permalink":"/post/github-image-bed-sets-a-custom-domain-name-create-an-exclusive-visual-communication-base-2c5kj9.html","section":"Blogs","summary":"","title":"GitHub图床设置自定义域名：打造专属视觉传播阵地","type":"blogs"},{"content":"","date":"2025年8月13日","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":" Hugo Blowfish # 20250812 # Blowfish 搭建的博客访问地址修改为：https://blog.sdgarden.top （修改 config_default\\hugo.toml 中的 baseURL，注意网址最后不能有“/”或者空格），https://tabortao.github.io 也可访问（GitHub Pages 也部署了）。 使用 cloudflare 部署 https://blog.sdgarden.top ，并在 Cloudflare DNS 中设置好 CNAME DNS 解析 Cloudflare Pages 部署 Blowfish 博客\n​ 20250809 # 更新优化 deploy.yml，提升部署速度。之前使用的是deploy.yml，发现最后运行 Deploy 阶段时间比较长，需要 1 分 33 秒~1 分 55 秒左右，找 AI 优化了下，提升了不少运行速度，修改部分代码如下： - name: Deploy 🚀 uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_branch: gh-pages publish_dir: ./public force_orphan: true peaceiris/actions-gh-pages：另一个常用的 GitHub Pages 部署动作，底层实现更简洁，部分场景下速度更快。（force_orphan: true 会使 gh-pages 分支仅包含当前部署内容，大幅减少 Git 操作的数据量）\n‍\nGmeek # 使用Gmeek 搭建的博客，访问地址修改为： https://tabortao.github.io/gmeekblog/\n​ Typecho # 2024 年 Typecho 搭建的博客，稳定运行，后续服务器到期不付费后下线。\n​ 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月13日","externalUrl":null,"permalink":"/post/blog-update-history-zydkte.html","section":"Blogs","summary":"","title":"博客更新记录","type":"blogs"},{"content":"嘿，各位思源笔记的深度用户和内容创作者们！\n你是否也曾有过这样的烦恼：在思源笔记里精心打磨好一篇文章，灵感泉涌，排版精美，但一想到要手动复制粘贴到微信公众号、Hexo 博客、Typecho 博客或是其他平台，再重新上传图片、调整格式，瞬间就觉得心好累？\n今天，我就要给大家介绍一款能彻底解放你生产力的“神器”——发布工具 (Publisher) 插件！它能让你在思源笔记中实现「一处写作，多处发布」，将你的知识库与世界无缝连接。\n准备好了吗？让我们一起解锁这个能让你的创作流程无比丝滑的强大工具吧！🚀\n💡 什么是「发布工具」插件？ # 简单来说，「发布工具」是一个强大的桥梁。它能将你在思源笔记中撰写的文档，一键发布到多个主流的博客平台和静态网站生成器。\n想象一下，你只需要专注于内容创作，完成文章后，轻轻一点，它就能自动出现在你的：\n博客平台：如 WordPress、MetaWeblog API 兼容的平台 (Z-Blog, Typecho 等) 静态网站：如 Hugo, Hexo, VitePress, Jekyll 代码托管平台：GitHub 以及更多：支持 WebDAV 的服务器 它不仅能发布新文章，还能轻松更新已发布的文章，甚至帮你自动处理文章中的图片上传，彻底告别繁琐的手动操作！\n🛠️ 快速上手：三步搞定！ # 别看它功能强大，上手却非常简单。跟着我，三步就能配置好你的发布流程。\n第一步：安装插件 # 这步毫无难度！\n打开思源笔记。 进入 “设置” -\u0026gt; “集市” -\u0026gt; “插件” 。 在搜索框中输入 发布工具 或 Publisher。 找到它，点击「下载」，然后启用插件。✅ ​\n第二步：配置你的发布服务 # 这是最关键的一步，也是魅力所在。你需要告诉插件，你想把文章发到哪里去。\nGithub Hugo 博客发布 # 在插件列表中找到「发布工具」，点击右侧的「通用设置」「发布设置」按钮。\n选择你要发布到的平台类型。我们以 Github 部署的静态网站的 Hugo 为例：\n用户名：自己 Github 用户名 鉴权 token：点击下方地址生成。 git 仓库名：自己创建的仓库名称，通常为 \u0026lt;用户名\u0026gt;.github.io。 默认分支： 填写 main 或 master，根据自己网站情况设置。 存储目录：根据自己的网站情况设置，通常是 content/posts，可自定义。 文件规则：参考发布工具官方文档设置，我这里设置为 [yyyy]-[mm]-[dd]-[filename].md。 ​\n文章预览规则：我这里设置为 /post/[slug].html。 ​\n图床服务：我这里选择 当前平台，可以把图片发布到 Github 仓库。 图片存储目录：我这里设置为 static/images/2025，2025 代表年份，之后需手动修改，可以 把图片按年份分类。 发布目录：我这里设置为 content/blogs/2025，与自己博客网站一致，之后需手动修改，可以 把文章按年份分类。 ​\nTypecho 博客发布 # Typecho 博客发布设置如下图所示。\n图床服务我选择 当前平台，这样可以自动把图片上传到自己的服务器。\n第三步：开始发布！ # 万事俱备，只欠东风！现在，让我们来发布第一篇文章。\n在思源笔记中，找到你写好的那篇文档。 点击左上角快捷键，「发布工具」-「一键发布」-「Hugo」。 在弹出的菜单中，依次选择 “发布” -\u0026gt; 你刚刚配置好的服务名称 (例如“我的个人博客”) 。 ​\n🎉 恭喜！几秒钟后，你的文章就已经成功出现在你的博客上了。是不是超级简单？\n更棒的是，如果你修改了原文，只需重复第三步，插件会自动识别并询问你是要更新现有文章，而不是创建一篇新的。\n✨ 进阶玩法 \u0026amp; 小贴士 # 掌握了基础操作后，这些小技巧能让你用得更爽：\n图片自动上传：插件会自动检测文章中的本地图片，并将其上传到你配置的目标平台（如 Typecho、Hugo 博客的媒体库），再自动替换文章中的图片链接，省心省力！ Front Matter 管理：对于使用 Hugo、Hexo 的朋友，插件可以自动处理文档的 Front Matter（即文章头部的配置信息），无需手动编写。 多平台一键分发：配置好多个发布服务后，你甚至可以在发布时勾选多个平台，实现真正意义上的「一篇文章，全网分发」。内容创作者的福音！ 🧾 总结 # 思源笔记的「发布工具」插件，真正打通了从知识沉淀到内容分享的“最后一公里”。它将复杂的发布流程简化为几次点击，让你能更专注于创作本身，而不是被琐碎的技术细节所困扰。\n它不仅仅是一个工具，更是连接你知识库与外部世界的强大桥梁。\n还在等什么？赶紧去集市下载体验吧！相信我，一旦你用上了它，就再也回不去了。\n‍\n📖 参考文章 # Hugo 平台配置指南 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n​\n‍\n","date":"2025年8月13日","externalUrl":null,"permalink":"/post/siyuan-note-plugin-publishing-tool-user-guide-f57h.html","section":"Blogs","summary":"","title":"思源笔记插件-【发布工具】使用指南","type":"blogs"},{"content":"Cloudflare 提供了 Pages 服务来托管 Hugo 站点。只需要从 Git 仓库构建并托管到 Cloudflare 的 CDN 即可。\n在 Cloudflare Pages 上部署 Hugo 静态网站非常简单，只需几步即可完成。\n📌 前置要求 # Cloudflare 账户：免费注册 Cloudflare。 Git 托管仓库（如 GitHub、GitLab）。 本地已安装 Hugo（推荐 extended 版本支持 SCSS/SASS）。 准备好你的 Hugo 项目（含 config.toml/config.yaml 和内容）。 🚀 部署步骤 # 1. 将 Hugo 项目推送到 Git 仓库 # # 初始化 Git 仓库（如尚未初始化） git init git add . git commit -m \u0026#34;Initial commit\u0026#34; # 关联远程仓库（以 GitHub 为例） git remote add origin https://github.com/你的用户名/仓库名.git git branch -M main git push -u origin main 📌 确保仓库是公开的（除非你使用 Cloudflare Pages 的付费计划支持私有仓库）。\n2. 在 Cloudflare Pages 中创建项目 # 登录 Cloudflare 控制台 访问 Cloudflare Pages，点击 Create a project。\n连接 Git 仓库 选择你的 Git 平台（如 GitHub），授权并选择你的 Hugo 项目仓库。\n配置构建设置\n分支: main（或其他你的默认分支） 构建设置 → 框架预设: 选择 Hugo 构建命令: hugo --minify （如需环境变量或自定义参数，见下方高级配置） 构建输出目录: public（Hugo 默认生成目录） 变量名称: HUGO_VERSION，0.146.0（Hugo 版本，与本地环境一致） 点击 \u0026ldquo;Save and Deploy\u0026rdquo; Cloudflare 会自动拉取仓库并构建 Hugo 网站。 3. 配置域名（可选） # 自定义域名 部署完成后，进入项目的 Settings → Custom domains，添加你的域名（如 example.com）。 DNS 设置 在 Cloudflare DNS 中添加 CNAME 记录，指向 Pages 提供的二级域名（如 xxxxxx.pages.dev）。 4. 高级配置（环境变量/自定义构建） # 如果 Hugo 项目依赖环境变量或需要自定义构建步骤：\n环境变量（如 HUGO_ENV=production） 在 Settings → Environment variables 中设置。\n自定义 build 命令 例如：\nhugo --minify --baseURL \u0026#34;$CF_PAGES_URL\u0026#34; 🌍 自动持续部署 # 每次向 Git 仓库推送变更时，Cloudflare Pages 会自动触发新的构建和部署。\n🔍 常见问题解决 # 构建失败\n检查日志中的错误（如 Hugo 版本不兼容）。 确保使用 hugo extended 版本（如果依赖 SCSS/SASS）： 在 Environment variables 中添加 HUGO_VERSION 为最新版（如 0.120.4）。 忽略 public 目录 如果在本地执行过 hugo 命令，记得将 public/ 添加到 .gitignore：\necho \u0026#34;public/\u0026#34; \u0026gt;\u0026gt; .gitignore 部署后出现 404\n确保 baseURL 在 config.toml 中正确（或通过环境变量动态设置）。 检查是否推送了 content 目录下的页面文件。 Rocket Loader\nCloudflare 提供的 Rocket Loader™ 可以通过 JavaScript 来加速网页渲染，但是会破坏 Blowfish 主题中的外观切换器，甚至还有可能因为错误的加载顺序导致网站出现或亮或暗的屏幕闪烁。\n可以通过禁用它来解决：\n点击 Cloudflare 控制台 点击你的域名 点击 速度-优化-内容优化 选项 滚动到 Rocket Loader™ 并禁用它 即使不需要这个功能，基于 Blowfish 主题的 Hugo 站点本身加载就比较快。 🎯 示例配置 (config.toml) # baseURL = \u0026#34;https://example.pages.dev/\u0026#34; # 替换为你的 Pages 域名 languageCode = \u0026#34;en-us\u0026#34; title = \u0026#34;My Hugo Site\u0026#34; theme = \u0026#34;my-theme\u0026#34; 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月11日","externalUrl":null,"permalink":"/blogs/2025/20250811-hugo-%E5%8D%9A%E5%AE%A2%E4%BD%BF%E7%94%A8cloudflare-pages%E9%83%A8%E7%BD%B2/","section":"Blogs","summary":"","title":"Hugo 博客使用Cloudflare Pages部署","type":"blogs"},{"content":" 安装主题 # 主题地址：https://github.com/nunocoracao/blowfish ，这里 使用 Git 子模块安装主题。\n# 使用 Git 子模块安装 cd mywebsite git init git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish # 更新 git submodule update --remote --merge # 手动更新 1.下载主题最新版本的源码 2. 解压缩, 将文件夹重命名为 blowfish，并移动到根目录 themes/ 目录下。你需要覆盖旧版以替换所有的主题文件。 3. 重建站点，并检查网站是否一切正常。 配置主题 # 主题下载 # 在主题下载页下载 config-default.zip,解压后重命名为 config，并移动到根目录。\n主题厂家配置 # 参考 exampleSite\\config，对自己的网站进行设置。 自己常见配置如下： # config\\_default\\hugo.toml smartTOC = true # 显示文章目录 # config\\_default\\params.toml defaultAppearance = \u0026#34;dark\u0026#34; # 使用黑色主题 # 参考config\\_default\\languages.en.toml，修改制作一个languages.zh-cn.toml # 参考config\\_default\\menus.en.toml，修改制作一个menus.zh-cn.toml，用于显示菜单 自定义浏览器图标 # 为了自定义网站图标，您需要将所有以下文件放置在网站根目录的 static 文件夹中，这些文件将会覆盖 themes/even/static/文件夹内的对应文件。使用在线工具，选择图片(使用iloveimg去除头像背景)，按照步骤生成并下载 favicon.zip，解压后放到 static 文件夹。就可以替换主题文件夹 themes\\blowfish\\static 中的 Favicon 图标。\nandroid-chrome-192x192.png android-chrome-512x512.png apple-touch-icon.png browserconfig.xml favicon.ico favicon-16x16.png favicon-32x32.png manifest.json mstile-150x150.png safari-pinned-tab.svg 调大文档内容宽度 # 创建 assets/css/custom.css 文件，内容如下：\n.max-w-fit, .max-w-prose { max-width: 100%; } umami analytics # 最简单的是直接使用 umami 的 cloud 云服务。(注册好了，还未实施成功)\n注册账号并获得 website id: https://cloud.umami.is/ 将 https://cloud.umami.is/script.js 文件内容存到 static/js/umami.js 中; layouts/partials/extend-head.html 中添加如下内容: data-website-id 值需要修改。 \u0026lt;script defer src=\u0026#34;{{ \u0026#34;js/umami.js\u0026#34; | relURL }}\u0026#34; data-website-id=\u0026#34;XXXXXX\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; 登录 https://cloud.umami.is/ 查看统计数据. 自动部署 # 仓库-设置-Pages Build and deployment 选择gh-pages，点击保存，这样就会使用 GitHub Action 来自动部署项目到gh-pages分支 参考文章 # 安装和配置 blowfish 主题 Blowfish 主题 安装和配置 JUKAI.SITE Blowfish 配置参考学习 【系统设计】用亚马逊云 AWS Amplify/Hugo/Blowfish 重搭个人博客 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月11日","externalUrl":null,"permalink":"/blogs/2025/20250811-hugo-blowfish%E4%B8%BB%E9%A2%98%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/","section":"Blogs","summary":"","title":"Hugo Blowfish主题安装与配置","type":"blogs"},{"content":" PicGo 图床设置 # 使用 PicGo 添加 GitHub 图床，需要先在 GitHub 上创建仓库并生成 Token，然后在 PicGo 中进行相关配置，具体步骤如下：\n创建 GitHub 仓库：登录GitHub，点击页面右上角的“+”号，选择“New repository”创建一个公开仓库，仓库名可自行命名，如“Blog-Image”，务必勾选“Public”选项，否则外部无法访问图片。\n生成 GitHub Token：点击右上角头像，选择“Settings”，在左侧导航栏点击“Developer settings”，接着选择“Personal access tokens”，点击“Generate new token”，选择“classic”。在“Note”处可任意命名，如“Image”，勾选“repo”权限（完全控制仓库），然后点击生成按钮，创建后复制该 Token，后续配置 PicGo 时会用到。\n配置 PicGo 图床：打开 PicGo，点击“图床设置”，选择“GitHub 图床”，点击右上角的编辑键进入配置页面，填入以下内容：\n图床名称：可自定义，如“博客图床”。 仓库名：格式为“your-username/blog-images”，即你的 GitHub 用户名/仓库名。 分支名：通常为“main”或“master”，具体看你的仓库设置。 Token：粘贴之前生成的 GitHub Token。 存储路径（可选）：可自行设置，如“2025/”，表示图片将上传到该目录。 自定义域名：推荐设置为“https://cdn.jsdelivr.net/gh/your-username/your-reponame”，用于 CDN 加速，这样不用魔法上网也可以访问图片。 测试上传：配置完成后，可将需要上传的图片拖放到 PicGo 中，或点击“点击上传”按钮选择图片进行上传测试，成功后会自动复制图片链接，该链接可直接在博客等场景中使用。 PicGo 设置 # 打开时间戳重命名，确保图像不会被覆盖 打开上传后自动复制 url，方便粘贴到文章使用 PicGo 插件 # S3：用于自定义图床设置 webp：将图像转换后webp然后再上传，推荐 其他说明 # 存储路径按年份进行修改，每年手动修改，确保不同年份图片存放到不同路径，待发现好用的插件，可以自定义存储路径，自动按照年份进行识别。 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月9日","externalUrl":null,"permalink":"/blogs/2025/20250809-github%E4%BD%9C%E4%B8%BA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%9B%BE%E5%BA%8A/","section":"Blogs","summary":"","title":"GitHub作为自己的图床","type":"blogs"},{"content":" 全局 # 零碎 # 在 /assets/scss/custom.scss 中加入以下代码\n// 页面基本配色 :root { // 全局顶部边距 --main-top-padding: 30px; // 全局卡片圆角 --card-border-radius: 25px; // 标签云卡片圆角 --tag-border-radius: 8px; // 卡片间距 --section-separation: 40px; // 全局字体大小 --article-font-size: 1.8rem; // 行内代码背景色 --code-background-color: #f8f8f8; // 行内代码前景色 --code-text-color: #e96900; // 暗色模式下样式 \u0026amp;[data-scheme=\u0026#34;dark\u0026#34;] { // 行内代码背景色 --code-background-color: #ff6d1b17; // 行内代码前景色 --code-text-color: #e96900; } } //------------------------------------------------------ // 修复引用块内容窄页面显示问题 a { word-break: break-all; } code { word-break: break-all; } //--------------------------------------------------- // 文章内容图片圆角阴影 .article-page .main-article .article-content { img { max-width: 96% !important; height: auto !important; border-radius: 8px; } } //------------------------------------------------ // 文章内容引用块样式 .article-content { blockquote { border-left: 6px solid #358b9a1f !important; background: #3a97431f; } } // --------------------------------------- // 代码块基础样式修改 .highlight { max-width: 102% !important; background-color: var(--pre-background-color); padding: var(--card-padding); position: relative; border-radius: 20px; margin-left: -7px !important; margin-right: -12px; box-shadow: var(--shadow-l1) !important; \u0026amp;:hover { .copyCodeButton { opacity: 1; } } // keep Codeblocks LTR [dir=\u0026#34;rtl\u0026#34;] \u0026amp; { direction: ltr; } pre { margin: initial; padding: 0; margin: 0; width: auto; } } // light模式下的代码块样式调整 [data-scheme=\u0026#34;light\u0026#34;] .article-content .highlight { background-color: #fff9f3; } [data-scheme=\u0026#34;light\u0026#34;] .chroma { color: #ff6f00; background-color: #fff9f3cc; } //------------------------------------------- // 设置选中字体的区域背景颜色 //修改选中颜色 ::selection { color: #fff; background: #34495e; } a { text-decoration: none; color: var(--accent-color); \u0026amp;:hover { color: var(--accent-color-darker); } \u0026amp;.link { color: #4288b9ad; font-weight: 600; padding: 0 2px; text-decoration: none; cursor: pointer; \u0026amp;:hover { text-decoration: underline; } } } //------------------------------------------------- //文章封面高度更改 .article-list article .article-image img { width: 100%; height: 150px; object-fit: cover; @include respond(md) { height: 200px; } @include respond(xl) { height: 305px; } } //--------------------------------------------------- // 全局页面布局间距调整 .main-container { min-height: 100vh; align-items: flex-start; padding: 0 15px; gap: var(--section-separation); padding-top: var(--main-top-padding); @include respond(md) { padding: 0 37px; } } //-------------------------------------------------- //页面三栏宽度调整 .container { margin-left: auto; margin-right: auto; .left-sidebar { order: -3; max-width: var(--left-sidebar-max-width); } .right-sidebar { order: -1; max-width: var(--right-sidebar-max-width); /// Display right sidebar when min-width: lg @include respond(lg) { display: flex; } } \u0026amp;.extended { @include respond(md) { max-width: 1024px; --left-sidebar-max-width: 25%; --right-sidebar-max-width: 22% !important; } @include respond(lg) { max-width: 1280px; --left-sidebar-max-width: 20%; --right-sidebar-max-width: 30%; } @include respond(xl) { max-width: 1453px; //1536px; --left-sidebar-max-width: 15%; --right-sidebar-max-width: 25%; } } \u0026amp;.compact { @include respond(md) { --left-sidebar-max-width: 25%; max-width: 768px; } @include respond(lg) { max-width: 1024px; --left-sidebar-max-width: 20%; } @include respond(xl) { max-width: 1280px; } } } //------------------------------------------------------- //全局页面小图片样式微调 .article-list--compact article .article-image img { width: var(--image-size); height: var(--image-size); object-fit: cover; border-radius: 17%; } 菜单栏圆角 # 在 /assets/scss/custom.scss 中加入以下代码：\n// 菜单栏样式 // 下拉菜单改圆角样式 .menu { padding-left: 0; list-style: none; flex-direction: column; overflow-x: hidden; overflow-y: scroll; flex-grow: 1; font-size: 1.6rem; background-color: var(--card-background); box-shadow: var(--shadow-l2); //改个阴影 display: none; margin: 0; //改为0 border-radius: 10px; //加个圆角 padding: 30px 30px; @include respond(xl) { padding: 15px 0; } \u0026amp;, .menu-bottom-section { gap: 30px; @include respond(xl) { gap: 25px; } } \u0026amp;.show { display: flex; } @include respond(md) { align-items: flex-end; display: flex; background-color: transparent; padding: 0; box-shadow: none; margin: 0; } li { position: relative; vertical-align: middle; padding: 0; @include respond(md) { width: 100%; } svg { stroke-width: 1.33; width: 20px; height: 20px; } a { height: 100%; display: inline-flex; align-items: center; color: var(--body-text-color); gap: var(--menu-icon-separation); } span { flex: 1; } \u0026amp;.current { a { color: var(--accent-color); font-weight: bold; } } } } 滚动条 # 在 /assets/scss/custom.scss 中加入以下代码：\n//将滚动条修改为圆角样式 //菜单滚动条美化 .menu::-webkit-scrollbar { display: none; } // 全局滚动条美化 html { ::-webkit-scrollbar { width: 20px; } ::-webkit-scrollbar-track { background-color: transparent; } ::-webkit-scrollbar-thumb { background-color: #d6dee1; border-radius: 20px; border: 6px solid transparent; background-clip: content-box; } ::-webkit-scrollbar-thumb:hover { background-color: #a8bbbf; } } 加载进度条 # 在 /layouts/partials/footer/custom.html 中加入以下代码：\n\u0026lt;script src=\u0026#34;https://npm.elemecdn.com/nprogress@0.2.0/nprogress.js\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34; \u0026gt;\u0026lt;/script\u0026gt; \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; href=\u0026#34;https://npm.elemecdn.com/nprogress@0.2.0/nprogress.css\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34; /\u0026gt; \u0026lt;script\u0026gt; NProgress.start(); document.addEventListener(\u0026#34;readystatechange\u0026#34;, () =\u0026gt; { if (document.readyState === \u0026#34;interactive\u0026#34;) NProgress.inc(0.8); if (document.readyState === \u0026#34;complete\u0026#34;) NProgress.done(); }); \u0026lt;/script\u0026gt; 修改布局 # 在 /assets/scss/grid.scss 中修改 left-sidebar 和 right-sidebar 的描述：\n.left-sidebar { order: -3; // max-width: var(--left-sidebar-max-width); max-width: 10%; } .right-sidebar { order: -1; // max-width: var(--right-sidebar-max-width); max-width: 20%; /// Display right sidebar when min-width: lg @include respond(lg) { display: flex; } } 把正文的占比改到了 70%, 原来的只有 50% 左右。\n在归档页增加标签云Tags # 在layouts/_default/archives.html里的\u0026lt;/header\u0026gt;后面加上如下代码：\n{{- $taxonomy := $.Site.GetPage \u0026#34;taxonomyTerm\u0026#34; \u0026#34;tags\u0026#34; -}} {{- $terms := $taxonomy.Pages -}} {{ if $terms }} \u0026lt;section class=\u0026#34;widget tagCloud\u0026#34;\u0026gt; \u0026lt;h2 class=\u0026#34;section-title\u0026#34;\u0026gt;{{ $taxonomy.Title }}\u0026lt;/h2\u0026gt; \u0026lt;div class=\u0026#34;tagCloud-tags\u0026#34;\u0026gt; {{ if ne (len $.Site.Taxonomies.tags) 0 }} {{ range $name, $taxonomy := $.Site.Taxonomies.tags }} {{ $tagCount := len $taxonomy.Pages }} \u0026lt;a href=\u0026#34;{{ \u0026#34;/tags/\u0026#34; | relURL }}{{ $name | urlize }}\u0026#34; class=\u0026#34;tagCloud-tags\u0026#34;\u0026gt; {{ $name }}\u0026lt;span class=\u0026#34;tagCloud-count\u0026#34;\u0026gt;{{ $tagCount }}\u0026lt;/span\u0026gt; \u0026lt;/a\u0026gt; {{ end }} {{ end }} \u0026lt;/div\u0026gt; \u0026lt;section\u0026gt; {{ end }} 以上代码用了tagCloud-count来修饰tag后面的数字，所以还需要在assets/scss/partials/widgets.scss里面加上如下代码，让数字变成浅灰：\n.tagCloud { .tagCloud-count { color: var(--body-text-color); } } 页面 # 归档 # 双栏 # 在 /assets/scss/custom.scss 中加入以下代码：\n// 归档页面两栏 @media (min-width: 1024px) { .article-list--compact { display: grid; grid-template-columns: 1fr 1fr; background: none; box-shadow: none; gap: 1rem; article { background: var(--card-background); border: none; box-shadow: var(--shadow-l2); margin-bottom: 8px; border-radius: 16px; } } } 卡片缩放动画 # 在 /assets/scss/custom.scss 中加入以下代码：\n/*-----------归档页面----------*/ //归档页面卡片缩放 .article-list--tile article { transition: 0.6s ease; } .article-list--tile article:hover { transform: scale(1.03, 1.03); } 友链三栏 # 在 /assets/scss/custom.scss 中加入以下代码：\n// 友情链接三栏 @media (min-width: 1024px) { .article-list--compact.links { display: grid; grid-template-columns: 1fr 1fr 1fr; background: none; box-shadow: none; gap: 1rem; article { background: var(--card-background); border: none; box-shadow: var(--shadow-l2); margin-bottom: 8px; border-radius: var(--card-border-radius); \u0026amp;:nth-child(odd) { margin-right: 8px; } } } } 首页 # 布局 # 在 /assets/scss/custom.scss 中加入以下代码：\n/*主页布局间距调整*/ .main-container { gap: 50px; //文章宽度 @include respond(md) { padding: 0 30px; gap: 40px; //中等屏幕时的文章宽度 } } .related-contents { overflow-x: visible; //显示隐藏的图标 padding-bottom: 15px; } 右侧导航栏动画 # 在 /assets/scss/custom.scss 中加入以下代码：\n/*------------------右侧导航栏--------------*/ // 搜索菜单动画 .search-form.widget { transition: transform 0.6s ease; } .search-form.widget:hover { transform: scale(1.1, 1.1); } //归档小图标放大动画 .widget.archives .widget-archive--list { transition: transform 0.3s ease; } .widget.archives .widget-archive--list:hover { transform: scale(1.05, 1.05); } //右侧标签放大动画 .tagCloud .tagCloud-tags a { border-radius: 10px; font-size: 1.4rem; transition: transform 0.3s ease; } .tagCloud .tagCloud-tags a:hover { transform: scale(1.1, 1.1); } 细节 # 代码块 # macOS 风格红绿灯图标 # 在 /assets/scss/custom.scss 中加入以下代码：\n// macOS 风格代码块 .article-content { .highlight:before { content: \u0026#34;\u0026#34;; display: block; background: url(/code-header.svg); height: 32px; width: 100%; background-size: 57px; background-repeat: no-repeat; margin-bottom: 5px; background-position: -1px 2px; } } 在 static 文件夹下新建 code-header.svg，写入以下代码：\n// macOS 红绿灯图标 \u0026lt;svg xmlns=\u0026#34;http://www.w3.org/2000/svg\u0026#34; version=\u0026#34;1.1\u0026#34; x=\u0026#34;0px\u0026#34; y=\u0026#34;0px\u0026#34; width=\u0026#34;450px\u0026#34; height=\u0026#34;130px\u0026#34;\u0026gt; \u0026lt;ellipse cx=\u0026#34;65\u0026#34; cy=\u0026#34;65\u0026#34; rx=\u0026#34;50\u0026#34; ry=\u0026#34;52\u0026#34; stroke=\u0026#34;rgb(220,60,54)\u0026#34; stroke-width=\u0026#34;2\u0026#34; fill=\u0026#34;rgb(237,108,96)\u0026#34;/\u0026gt; \u0026lt;ellipse cx=\u0026#34;225\u0026#34; cy=\u0026#34;65\u0026#34; rx=\u0026#34;50\u0026#34; ry=\u0026#34;52\u0026#34; stroke=\u0026#34;rgb(218,151,33)\u0026#34; stroke-width=\u0026#34;2\u0026#34; fill=\u0026#34;rgb(247,193,81)\u0026#34;/\u0026gt; \u0026lt;ellipse cx=\u0026#34;385\u0026#34; cy=\u0026#34;65\u0026#34; rx=\u0026#34;50\u0026#34; ry=\u0026#34;52\u0026#34; stroke=\u0026#34;rgb(27,161,37)\u0026#34; stroke-width=\u0026#34;2\u0026#34; fill=\u0026#34;rgb(100,200,86)\u0026#34;/\u0026gt; \u0026lt;/svg\u0026gt; 固定块的高度 # 过长的内容影响观感，所以把 block 的高度限制在 20em，并隐藏滚动条 在 /assets/scss/partials/layout/article.scss 中进行如下修改（已隐藏无关片段）：\n.article-content { // line 205 .highlight { // line 331 background-color: var(--pre-background-color); - padding: var(--card-padding); position: relative; pre { // line 345 margin: initial; padding: 0; margin: 0; width: auto; + max-height: 20em; + scrollbar-width: none; /* Firefox */ + \u0026amp;::-webkit-scrollbar { + display: none; /* Chrome Safari */ + } } } } 使图床链接的图片居中 # 目前 Stack 默认只支持本地引用的图片居中，而在使用 url 图片链接时没有居中格式。在 /assets/scss/partials/layout/article.scss Line 256 处（同级任意位置）增加以下代码：\n// Center image from url source p \u0026gt; img { display: block; margin: 0 auto; max-width: 100%; height: auto; } 鸣谢 # Hugo Stack 魔改美化 Hugo Stack 主题装修笔记 Part 3 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月8日","externalUrl":null,"permalink":"/blogs/2025/20250808-hugo-stack-%E4%B8%BB%E9%A2%98%E7%BE%8E%E5%8C%96%E4%BF%AE%E6%94%B9/","section":"Blogs","summary":"","title":"Hugo Stack 主题美化修改","type":"blogs"},{"content":" 📢软件介绍 # RustFS是Rust 驱动的S3兼容、高性能、多云存储、无线扩容和安全可靠的分布式存储系统，用热门安全的。适用于 AI/ML及海量数据存储、大数据、互联网、工业和保密存储等全部场景。近乎免费使用。遵循 Apache 2 协议，支持国产保密设备和系统。\n项目地址：https://github.com/rustfs/rustfs\n官网：https://rustfs.com/\n我这里通过RustFS，在自己的飞牛NAS创建一个S3对象存储，为自己服务，详细步骤如下。\n⭐️RustFS 的特性 # S3 兼容: 100% 兼容 S3 协议，优秀的兼容性与大数据、数据湖、备份软件、图像处理软件、工业生产软件兼容； 分布式: RustFS 是一个分布式的对象存储，因此，RustFS 可以满足各种需求； 商用友好: RustFS 是 100% 的开源软件，并且使用 Apache v2.0 许可证发型，因此，RustFS 是商用友好的； 快速: Rust 这一门开发语言的性能无限接近于 C 语言的速度。因此，RustFS 的性能非常强劲； 安全: RustFS 使用内存安全的语言 Rust 编写，因此，RustFS 是 100% 安全的； 跨平台: RustFS works on Windows, macOS, and Linux； 可扩展: RustFS 支持自定义插件，因此，RustFS 可以满足各种需求； 可定制: 由于开源的特性，你可以自定义各种插件插件，因此，RustFS 可以满足各种需求； 云原生: RustFS 支持 Docker 等方式部署，可快速在云原生环境下快速部署。 🖼软件截图 # 💻Docker部署 # NAS部署 # 创建docker-compose.yml文件，文件内容如下：\nservices: rustfs: image: rustfs/rustfs:latest container_name: rustfs ports: - 24650:9000 volumes: - ./data:/data # 数据存储 - /etc/localtime:/etc/localtime - ./logs:/logs # 日志 environment: - RUSTFS_ACCESS_KEY=rustfsadmin - RUSTFS_SECRET_KEY=rustfsadmin restart: unless-stopped 把docker-compose.yml放到docker文件夹下面的rustfs文件夹，使用以下命令启动服务：\ndocker-compose up -d 启动之后在浏览器中打开控制台地址：http://192.168.3.4:24650/，就可以看到控制台的web页面了。\n使用我们在docker-compose.yml中配置的用户名和密码登录控制台即可。\n使用NPS进行内网穿透，云服务器开通端口访问权限；然后在1Panel进行反向代理设置，并开启HTTPS。\n​\n🔌RustFS 的使用 # RustFS 的使用和 MinIO 非常像。\n选择文件浏览器功能，点击右上角的创建存储桶按钮即可创建存储桶。 ​\n点击存储桶对应的配置按钮即可进行配置，例如修改下存储桶的访问策略。 ​\n进入存储桶后，点击右上角上传文件按钮，即可上传文件，支持同时上传多个文件。 CherryStudio S3兼容存储 # 对Cherrystudio进行S3备份，设置如下，测试RustFS可以成功使用。 ​\nAPI地址：填写设置反向代理后的域名地址\n区域：cn-east-1\n存储桶：填写自己创建的桶\nAccess Key ID：填写自己创建的ID\nSecret Access Key：填写自己创建的Key\n备份目录：可选，不填写就存储到存储桶的根目录。\n同样的，思源笔记等其他支持S3的软件，都可以使用RustFS进行备份、同步。\nPicGo设置 # 因为RustFS兼容S3，所以我们使用S3插件就可以进行图片上传了。\n安装插件s3 设置如下图：注意自定义节点需要为 https://域名；上传路径为：{year}/{month}/{fullName}，具体可参考S3插件说明。 📒参考文章 # RustFS：高性能文件存储与部署解决方案（MinIO替代方案） 换掉MinIO！全新一代分布式文件系统来了，功能很强大！ MinIO分布式对象存储 \u0026amp; 配置为Picgo图床 🔗拓展链接 # 缤纷云S3对象存储同步思源笔记 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年8月4日","externalUrl":null,"permalink":"/post/rustfs-open-source-object-storage-perfect-replacement-for-minio-1yeutx.html","section":"Blogs","summary":"","title":"RustFS，开源对象存储，MinIO完美替代","type":"blogs"},{"content":" 📢软件介绍 # EasyTier，由 Rust 和 Tokio 驱动，一个简单、安全、去中心化的异地组网方案。\n项目地址：https://github.com/EasyTier/Easytier\n官网：https://easytier.cn/​\n🖼软件截图 # ​\n💻使用教程 # 1. 官网注册 # 在官网 EasyTier Dashboard，注册一个账号，用于控制台管理设备。\n2. Docker部署 # 对于使用NAS内网穿透的人，需要这一步，如果只是两台电脑使用，忽略第1、2步，自己使用第三步就好了。\nservices: easytier: image: easytier/easytier:latest # 国内用户可以使用 m.daocloud.io/docker.io/easytier/easytier:latest hostname: fnOS # 用于设备区分，自定义 container_name: easytier restart: always network_mode: host cap_add: - NET_ADMIN - NET_RAW environment: - TZ=Asia/Shanghai devices: - /dev/net/tun:/dev/net/tun volumes: - ./root:/root - ./machine-id:/etc/machine-id:ro # 映射宿主机机器码 # command: -d --network-name you-network-name --network-secret your-sercet -p tcp://public.easytier.cn:11010 -n 192.168.3.0/24 command: -w your-name # 官网注册的账号 https://easytier.cn/web，用于控制台管理设备 Windows使用 # 直接官网下载，使用和docker一样的network-name和network-secret启动即可。\n📒参考文章 # Synology群晖利用Easytier开源方案实现去中心化的免费内网穿透 - feng的博客 🔗拓展链接 # RustVNT，助你轻松实现内网穿透 【阿里云】NPS内网穿透访问家庭黑群晖 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n‍\n","date":"2025年8月4日","externalUrl":null,"permalink":"/post/easytier-an-intranet-penetration-tool-13tkui.html","section":"Blogs","summary":"","title":"EasyTier，内网穿透神器","type":"blogs"},{"content":"Hugo 是一个用 Go 语言编写的快速、现代的静态网站生成器。它以其极快的构建速度和易用性而闻名。以下是 Hugo 的基本使用流程和核心概念：\n核心步骤 # 安装 Hugo 创建一个新站点 添加主题 添加内容 本地预览 构建静态网站 部署 1. 安装 Hugo # 官方网站下载: 前往 https://gohugo.io/installation/ 下载适合你操作系统 (Windows, macOS, Linux) 的二进制文件。 包管理器: macOS (Homebrew): brew install hugo Linux (Snap): sudo snap install hugo Windows (Chocolatey): choco install hugo 安装完成后，在终端/命令提示符中运行 hugo version 验证是否安装成功。 2. 创建一个新站点 # 在终端中，导航到你想要存放网站项目的目录，然后运行：\nhugo new site my-awesome-site 这会在当前目录下创建一个名为 my-awesome-site 的新文件夹，其中包含 Hugo 的基本目录结构：\nmy-awesome-site/ ├── archetypes/ # 新内容的默认模板 ├── assets/ # 需要 Hugo Pipes 处理的文件 (CSS, JS 等) ├── config.toml # 主配置文件 (也可以是 config.yaml/config.json) ├── content/ # **核心目录：存放所有网站内容 (Markdown 文件)** ├── data/ # 网站使用的数据文件 (YAML, TOML, JSON) ├── layouts/ # **核心目录：HTML 模板 (覆盖主题模板或自定义)** ├── public/ # **Hugo 构建生成的静态 HTML 文件 (最终部署的内容)** ├── resources/ # Hugo Pipes 生成的缓存文件 ├── static/ # **存放静态文件 (图片, CSS, JS, PDF 等)，直接复制到 public/** └── themes/ # **存放网站主题** 3. 添加主题 # Hugo 依赖主题来定义网站的外观和布局。主题通常放在 themes/ 目录下。\n查找主题: 官方主题库: https://themes.gohugo.io/ GitHub 搜索 hugo-theme 添加主题 (推荐使用 Git Submodule): 进入你的站点根目录 (cd my-awesome-site)。 找到你喜欢的主题的 Git 仓库地址 (例如 https://github.com/user/theme-name.git)。 运行命令将其添加为子模块： git init # 如果还没初始化 git 仓库 git submodule add https://github.com/user/theme-name.git themes/theme-name 配置主题: 打开主配置文件 config.toml (或 config.yaml/config.json)，添加主题配置： theme = \u0026#34;theme-name\u0026#34; 根据主题文档，可能还需要配置其他选项（如菜单、参数等）。 4. 添加内容 (核心) # 所有内容都放在 content/ 目录下，以 Markdown (.md) 文件形式组织。 创建新页面/文章: 手动创建： 直接在 content/ 或其子目录下创建 .md 文件 (例如 content/posts/my-first-post.md)。 使用 hugo new 命令 (推荐)： hugo new posts/my-first-post.md 这会根据 archetypes/default.md 模板在 content/posts/ 下创建文件，并包含预填充的 Front Matter。 理解 Front Matter: 每个内容文件顶部需要有一段用 +++ (TOML) 或 --- (YAML) 包裹的元数据区域，称为 Front Matter。它定义了页面的标题、日期、分类、标签、模板、草稿状态等。例如 (TOML)： +++ title = \u0026#34;我的第一篇博文\u0026#34; date = 2023-10-27T15:30:00+08:00 draft = true # 标记为草稿，构建时默认不发布 categories = [\u0026#34;技术\u0026#34;, \u0026#34;Hugo\u0026#34;] tags = [\u0026#34;入门\u0026#34;, \u0026#34;静态网站\u0026#34;] author = \u0026#34;你的名字\u0026#34; +++ draft: true 的文章在运行 hugo server -D 时会显示，但 hugo (正式构建) 时默认不会生成。 编写内容: 在 Front Matter 下方，使用标准的 Markdown 语法编写你的内容。Hugo 支持所有基本 Markdown 语法以及一些扩展（如代码高亮、短代码）。 5. 本地预览 (开发阶段必备) # 在站点根目录下运行：\nhugo server -D -D: 包含标记为 draft: true 的草稿文章。 -F: 包含标记为 publishDate 在未来的文章。 默认情况下，Hugo 会启动一个本地开发服务器，通常监听在 http://localhost:1313。 实时重载: 这是 Hugo 的一大亮点！保存对内容文件 (content/)、配置文件 (config.toml)、模板文件 (layouts/) 或静态文件 (static/) 的更改后，浏览器会自动刷新，几乎无需手动刷新即可看到最新效果。 6. 构建静态网站 (准备部署) # 当你对网站满意并准备好发布时，运行：\nhugo 这会将你的整个网站（不包括草稿和未来的文章）编译成静态 HTML、CSS、JS 等文件，并输出到 public/ 目录。 public/ 目录里的内容就是最终可以部署到任何 Web 服务器（如 Nginx, Apache）或托管服务（如 GitHub Pages, Netlify, Vercel, Cloudflare Pages）上的文件。 构建选项: -D / --buildDrafts: 包含草稿。 -F / --buildFuture: 包含未来的文章。 --minify: 最小化输出文件 (HTML, CSS, JS)。 --cleanDestinationDir: 在生成新文件前清除 public/ 目录（删除旧文件）。 7. 部署 # 将 public/ 目录里的所有内容上传到你的 Web 服务器或托管服务即可。\n常用托管方式: GitHub Pages: 在 GitHub 上创建一个仓库 (例如 username.github.io)。 将 public/ 目录的内容推送到该仓库的 main 或 gh-pages 分支 (具体看 GitHub Pages 设置)。 Netlify / Vercel / Cloudflare Pages: 将你的 整个 Hugo 项目根目录 (包含 config.toml, content/, themes/ 等，不包括 public/) 推送到 GitHub/GitLab/Bitbucket。 在这些平台上创建一个新站点，连接到你的代码仓库。 设置构建命令为 hugo (或 hugo --minify)，发布目录为 public。 每次向仓库推送代码，平台会自动触发构建和部署。非常方便！ 关键目录和文件总结 # config.toml / config.yaml / config.json: 主配置文件，设置站点全局参数、主题配置等。 content/: 核心内容目录，所有 Markdown 文件存放于此，组织方式决定 URL 结构。 layouts/: 模板目录，存放 .html 模板文件 (覆盖主题模板或创建自定义模板)。 static/: 静态文件目录，存放图片、CSS、JS、PDF 等，直接复制到最终 public/。 themes/: 主题目录，存放下载的主题。 public/: 输出目录，运行 hugo 后生成，包含最终可部署的静态网站文件。 archetypes/: 内容模板，hugo new 命令会基于此创建新内容文件。 常用命令总结 # hugo new site [name]: 创建新站点 hugo new [path/to/content.md]: 创建新内容文件 hugo server / hugo server -D: 启动本地开发服务器 (不含/含草稿) hugo: 构建网站到 public/ 目录 (不含草稿和未来文章) hugo -D: 构建网站并包含草稿 hugo --minify: 构建并最小化输出文件 hugo version: 显示 Hugo 版本 学习更多 # 官方文档: https://gohugo.io/documentation/ - 最全面、最权威的资源。 官方论坛: https://discourse.gohugo.io/ - 提问和查找答案的好地方。 主题文档: 仔细阅读你所选主题的文档，了解其特定配置和功能。 主题推荐 # 简洁清爽 LoveIt 效果：飞哥聊AI 美观漂亮 Stack 效果：第三夏尔 极简主题 Meteor 效果：子舒的博客 hugo-blog 参考博客 # Naive Koala 第三夏尔 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年7月30日","externalUrl":null,"permalink":"/blogs/2025/20250730-hugo%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/","section":"Blogs","summary":"","title":"Hugo使用指南","type":"blogs"},{"content":"","date":"2025年7月30日","externalUrl":null,"permalink":"/page/","section":"Pages","summary":"","title":"Pages","type":"page"},{"content":" 关于我 # 大家好，我是Tabor，一个热爱绿色建筑、LEED、WELL、低碳建筑、超低/近零/零能耗建筑、碳中和建筑、海绵城市、ESG及可持续建筑的绿建人。在这个里我希望能与大家分享我在这些领域的见解和心得，同时也分享一些好玩高效的软件工具，让我们的工作和生活变得更加有趣和高效。\n我将以绿色建筑和可持续发展的理念为核心，结合实际案例和经验，与大家一起探讨如何通过科技和创新，创造更加绿色、健康和可持续的未来。希望大家能够在这里找到有价值的信息和灵感，共同为建设美好环境贡献一份力量。感谢大家的关注和支持，期待与大家的交流和互动。\n","date":"2025年7月30日","externalUrl":null,"permalink":"/page/about/","section":"Pages","summary":"","title":"关于","type":"page"},{"content":" Alist被卖之后，开始使用OpenList挂载网盘玩，记录下挂载相关设置。\n添加存储 # 天翼网盘 # 关闭设备锁： 登录 https://e.dlife.cn/ 关闭设备锁。 存储-添加“天翼云盘客户端”，输入手机号、密码、获取Cookies ​\n​\n添加完毕之后，关闭设备锁。\n也可以尝试下官方的 **189CloudTV**​\n百度存储 # 点击获取个人令牌，选择百度网盘 验证登录。 勾选“使用OpenList提供的参数” 个人用户，推荐使用安装官方教程方法2进行设置 OpenList挂载到飞牛 # 文件管理-远程挂载-挂载远程文件夹，然后按如下输入OpenList相关信息即可。 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2025年7月11日","externalUrl":null,"permalink":"/post/openlist-network-disk-mount-2ocesn.html","section":"Blogs","summary":"","title":"OpenList网盘挂载","type":"blogs"},{"content":" 为了让爱快系统进行拨号上网，尝试自己修改移动宽带为桥接模式，记录下设置过程。\n获取 MAC 地址 # 在移动光猫背面，可以看到自己光猫 IP 为 192.168.1.1，找到光猫的 MAC 地址，我的光猫 MAC 为：38-A8-98-1F-B6-58 ，去掉“-” 得到 38A89B1FB658。\n​ 开启 Telnet # 1、在浏览器中输入 http:/192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1\u0026amp;key= 2、把你刚刚编辑过的 MAC 加到此网址的后面，就变成了\nhttp:/192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1\u0026amp;key=38A89B1FB658 注意一定要大写 MAC 地址\n3、回车后，你应该看到“telnet 开启” 如果浏览器显示“操作错误”，那么就是 MAC 没有获取对，或者你用了小写字母\n获取超级密码 # 1、打开 cmd（Windows）或者 Terminal 终端（macOS）\n2、输入 telnet 192.168.1.1，回车，你应该看到 login：\n如果出现这样的提示说明没有安装 Telnet 客户端 ，打开 Windows 功能安装界面，勾选 Telnet 客户端确定即可解决 。\n​ 3、然后，在 login: 后面输入 admin，回车，对话框会提示你输入密码。在 Password: 后面输入 Fh@加上你获取的 MAC 的后 6 位，比如说我这里就是 Fh@1FB658 ，还是注意 MAC 地址部分的密码是大写字母，否则密码会报错。此时，会出现一个 $。根据终端版本不同或者是#。\n4、输入\nload_cli factory show admin_name show admin_pwd 对话框会显示 里面 admin_name=后面的 CMCCAdmin 就是超级账户名，admin_pwd=后面的 XXX 就是超级密码（用户名和密码都区分大小写）\n5、访问 192.168.1.1，把账户名和密码输进去，就进入管理员模式了\n更改光猫桥接模式 # 使用超级密码登录后，后台的页面内容变丰富了，可以设置更多的内容了。选择网络，宽带设置，点开连接名称，一般有 4 个连接。\n1、TR069_R 是运营商远程控制光猫的连接，没有用，有的光猫设置了桥接模式之后，莫名其妙又变回拨号了，可能就是运营商远程控制了，可以删除，运营商就控制不了了； 2、INTERNET_B或者R 是我们上网用的，INTERNET后面的R和B两个字母，分别代表路由（Route）模式和桥接（bridge）；（我的已经重新设置了，所以是5） 3、OTHER_B 是IPTV看电视的； 4、VOIP_R是打电话的，现在基本没人用了。 这里我修改为 INTERNET_B，改为桥接模式后，可在移动 APP 上重置宽带密码，账号为 手机号 @139.gd。\n▲操作之前，选择相应的连接协议，一定要截图保存，方便后面修改回来，光猫可不能像路由器一样随意的重置，重置了之后需要找安装师傅重新注册设备，不要问我怎么知道的。\n路由器进行拨号上网 # 登录路由器后台 192.168.3.1，进行拨号上网就可以了。\n常见问题 # 无法访问光猫后台 # 光猫 LAN 地址：192.168.1.1 路由器 LAN 地址：192.168.3.1 路由器 WAN 口：PPPoE 拨号 将光猫改为 桥接模式，使用路由器拨号后，不能再通过路由器访问光猫后台，解决方法：\n方法一 路由器更改上网方式登录光猫管理后台 进入路由器管理界面，找到路由设置 - 上网设置，将上网方式更改为 自动获取 IP 地址 ，然后路由器的 WIFI 会断网，这个要注意下，然后大概等 30s，连接路由器 Wi-Fi 后，直接访问光猫管理后台地址即可。 这个时候的 Wi-Fi 是处于断网状态，无法访问外网要注意，登录光猫后台修改完东西后，在将路由器的上网方式更改回你之前设置的方式即可。\n方法二 网线连接光猫和电脑，修改电脑 IP 为光猫网段 光猫改为桥接后，无法直接登陆光猫怎么办？\n参考文章 # 2023年移动光猫HG6145D、HG5145F获取超级密码\u0026ndash;天寻工作室 移动光猫拨号上网改桥接教程_网络设备_什么值得买 上面推荐的文章你是否喜欢呢，如果有什么好的推荐或者想要了解最新的工具，欢迎在评论区留言和大家一起交流！喜欢记得关注公众号【可持续学园】，我们下期再见！ 👇\n","date":"2024年12月9日","externalUrl":null,"permalink":"/post/route-mobile-optical-cat-gets-super-password-change-to-bridge-mode-dialup-internet-access-z1nenms.html","section":"Blogs","summary":"","title":"【路由】移动光猫获取超级密码，改为桥接模式拨号上网","type":"blogs"},{"content":"","date":"2024年12月9日","externalUrl":null,"permalink":"/tags/%E8%BD%AF%E8%B7%AF%E7%94%B1/","section":"Tags","summary":"","title":"软路由","type":"tags"},{"content":"","externalUrl":null,"permalink":"/en/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/en/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/en/","section":"Tabor's Blog","summary":"","title":"Tabor's Blog","type":"page"},{"content":"","externalUrl":null,"permalink":"/en/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]