<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>静思笺 · Domal</title>
    <link>https://domal.cc/thinking/</link>
    <description>静坐自省，偶得心得</description>
    <generator>Hugo -- gohugo.io</generator>
    <atom:link href="https://domal.cc/thinking/" rel="self" type="application/rss+xml" />
    
    <item>
      <title>面向 Hugo 内容管理者的 Android 用户</title>
      <link>https://domal.cc/thinking/hugo%E5%90%8E%E7%AB%AF%E8%AE%BE%E6%83%B3---2/</link>
      <pubDate>Mon, 07 Sep 2026 22:17:00 &#43;0800</pubDate>
      
      <guid>https://domal.cc/thinking/hugo%E5%90%8E%E7%AB%AF%E8%AE%BE%E6%83%B3---2/</guid>
      <description>&amp;lt;p&amp;gt;又开始折腾了。在完成了 Windows 桌面客户端之后，我又有了新想法。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;需求很纯粹：&amp;lt;strong&amp;gt;手机编辑内容 → 一键发布上线。&amp;lt;/strong&amp;gt; 想法听着简单，但第一步就被卡住了——手机上无法直接运行 &amp;lt;code&amp;gt;hugo.exe&amp;lt;/code&amp;gt;，而移植 Hugo 源码更是难上加难（这点我曾用 DeepSeek 求证过）。于是 DeepSeek 给了我两条现成的方案，先记录如下。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;方案-agithub-仓库--github-actions-自动构建发布推荐最省心&amp;#34;&amp;gt;方案 A：GitHub 仓库 &#43; GitHub Actions 自动构建发布（推荐，最省心）&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;原理&amp;#34;&amp;gt;原理&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;div class=&amp;#34;highlight&amp;#34;&amp;gt;&amp;lt;pre tabindex=&amp;#34;0&amp;#34; class=&amp;#34;chroma&amp;#34;&amp;gt;&amp;lt;code class=&amp;#34;language-text&amp;#34; data-lang=&amp;#34;text&amp;#34;&amp;gt;&amp;lt;span class=&amp;#34;line&amp;#34;&amp;gt;&amp;lt;span class=&amp;#34;cl&amp;#34;&amp;gt;手机（写/改 Markdown）→ push 到 GitHub 仓库&amp;#xA;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;#34;line&amp;#34;&amp;gt;&amp;lt;span class=&amp;#34;cl&amp;#34;&amp;gt;                      → GitHub Actions 检测到 push&amp;#xA;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;#34;line&amp;#34;&amp;gt;&amp;lt;span class=&amp;#34;cl&amp;#34;&amp;gt;                      → 自动跑 hugo 构建 public/&amp;#xA;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;#34;line&amp;#34;&amp;gt;&amp;lt;span class=&amp;#34;cl&amp;#34;&amp;gt;                      → 自动用 SSH/SFTP 上传到宝塔站点目录&amp;#xA;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;h3 id=&amp;#34;手机端需要什么&amp;#34;&amp;gt;手机端需要什么&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;手机编辑器：&amp;lt;strong&amp;gt;GitHub 网页编辑&amp;lt;/strong&amp;gt;、手机版 GitHub App，或任何&amp;lt;strong&amp;gt;支持 GitHub 同步的 Markdown 编辑器&amp;lt;/strong&amp;gt;（如 Obsidian 手机版 &#43; Git 插件）；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;手机改完文件 → 提交 → push，发布全流程即告完成。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;需要做的一次性配置&amp;#34;&amp;gt;需要做的一次性配置&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ol&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;把博客源码推到一个 GitHub（私有）仓库；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;在仓库里放一个 Actions 工作流文件（&amp;lt;code&amp;gt;.github/workflows/deploy.yml&amp;lt;/code&amp;gt;），内容大致是：检出代码 → 安装 hugo → 执行 &amp;lt;code&amp;gt;hugo --minify&amp;lt;/code&amp;gt; → 用 &amp;lt;code&amp;gt;scp/sftp&amp;lt;/code&amp;gt; 上传到宝塔；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;在 GitHub Secrets 中存放服务器 IP / 账号 / 私钥（&amp;lt;strong&amp;gt;无需把密码写进代码&amp;lt;/strong&amp;gt;）。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ol&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;优点&amp;#34;&amp;gt;优点&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;手机零开发&amp;lt;/strong&amp;gt;：不动手写任何 App，用现成的 GitHub App / 网页编辑器即可；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;发布全自动&amp;lt;/strong&amp;gt;：&amp;lt;code&amp;gt;push&amp;lt;/code&amp;gt; 即发布，贴合&amp;amp;quot;手机端写完即发&amp;amp;quot;的需求；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;有版本历史&amp;lt;/strong&amp;gt;：可回滚、可备份，心里踏实。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;缺点&amp;#34;&amp;gt;缺点&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;需要手机能访问 GitHub（国内网络可能要代理）；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;用户需略懂 Git 概念（不过 GitHub 手机 App 的&amp;amp;quot;提交&amp;amp;quot;按钮已经足够简单）。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;blockquote&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;这本质上是把之前讨论过的「GitHub 中转 &#43; 服务器构建」路线自动化了，前端发布动作完全不在手机端执行。&amp;lt;/p&amp;gt;</description>
    </item>
    
    <item>
      <title>荒岛救赎：归航之旅</title>
      <link>https://domal.cc/thinking/%E8%8D%92%E5%B2%9B%E6%95%91%E8%B5%8E%E5%BD%92%E8%88%AA%E4%B9%8B%E6%97%85/</link>
      <pubDate>Mon, 17 Aug 2026 23:28:00 &#43;0800</pubDate>
      
      <guid>https://domal.cc/thinking/%E8%8D%92%E5%B2%9B%E6%95%91%E8%B5%8E%E5%BD%92%E8%88%AA%E4%B9%8B%E6%97%85/</guid>
      <description>&amp;lt;h1 id=&amp;#34;完整游戏剧情架构设计方案&amp;#34;&amp;gt;完整游戏剧情&amp;amp;amp;架构设计方案&amp;lt;/h1&amp;gt;&amp;#xA;&amp;lt;blockquote&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;类型：第三人称开放世界剧情向生存ARPG&amp;lt;br&amp;gt;&amp;#xA;核心组合：男主 &#43; 小女孩（固定主角组）&amp;lt;br&amp;gt;&amp;#xA;单双人统一：单人模式下小女孩AI控制，双人模式下玩家B控制小女孩&amp;lt;br&amp;gt;&amp;#xA;剧情目标：寻找失散的恋人 &#43; 寻找小女孩的父母  &#43; 离开孤岛&amp;#xA;恋人定位：全程NPC（仅线索与回忆存在，实体未出现）&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/blockquote&amp;gt;&amp;#xA;&amp;lt;hr&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;一游戏核心总览&amp;#34;&amp;gt;一、游戏核心总览&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;1-游戏定位&amp;#34;&amp;gt;1. 游戏定位&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;一款&amp;lt;strong&amp;gt;单人/双人均可&amp;lt;/strong&amp;gt;的第三人称开放世界剧情向生存ARPG。融合情感羁绊、团队生存博弈、硬核动作狩猎与多分支剧情。单双人模式共享完全一致的主线剧情、目标与结局，仅在操作与互动方式上有差异化设计。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;2-核心主题&amp;#34;&amp;gt;2. 核心主题&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;绝境从不毁灭人心——真正的救赎，是在孤独中守护一份承诺，在绝望里点亮一盏希望。&amp;lt;br&amp;gt;&amp;#xA;“哥哥，我们一起找到他们。”&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;3-核心特色&amp;#34;&amp;gt;3. 核心特色&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;固定主角组&amp;lt;/strong&amp;gt;：男主（25岁，Ethan 伊森） &#43; 小女孩（约10岁，Mia 米娅），贯穿始终的羁绊核心&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;双线寻人目标&amp;lt;/strong&amp;gt;：寻找失踪的恋人（25岁，Joy 乔伊） &#43; 寻找Mia的父母&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;统一单双人剧情&amp;lt;/strong&amp;gt;：单人AI小女孩，双人玩家B控制小女孩&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;硬核生存规则&amp;lt;/strong&amp;gt;：昼夜高危机制、强制归巢、动态天气、猛兽AI&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;高自由开放世界&amp;lt;/strong&amp;gt;：无缝地图，探索、建造、战斗、剧情一体化&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;情感沉浸系统&amp;lt;/strong&amp;gt;：记忆相机、希望值、恋人线索链、Mia成长曲线&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;hr&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;二世界观与背景&amp;#34;&amp;gt;二、世界观与背景&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;蔚蓝远洋，年轻情侣【男主】与【恋人】结束城市奔波，搭乘远洋轮渡开启蜜月旅行。同船有一位约10岁的米娅，她是海洋生物学家的女儿，随父母出海考察。&amp;lt;br&amp;gt;&amp;#xA;甲板上，Mia的相机不慎掉落，Ethan飞身趁机抓住，避免了掉入海中的情况；三人因此结识，Mia亲切地喊“哥哥”“姐姐”，并一起拍下一张合影（成为关键道具）。&amp;lt;br&amp;gt;&amp;#xA;轮渡行至海域禁区，毫无征兆的特级海上风暴骤然降临。黑云压海、暴雨倾盆、巨浪滔天，狂暴海风直接撕裂船体，轮渡瞬间解体倾覆。混乱的沉船灾难中，人群四散漂流，主角与恋人被巨浪强行冲散，彼此失联、生死未卜。&amp;#xA;Ethan与Mia被冲上一座与世隔绝的无名孤岛。岛上白天静谧，夜晚黑雾笼罩，变异猛兽横行，天气变幻莫测。&amp;lt;br&amp;gt;&amp;#xA;Ethan醒来后通过哭声寻找到Mia，Mia颤抖着说“哥哥，我怕……爸爸妈妈也不见了”。Ethan握住她的手：“别怕，我们一起找他们。”&amp;amp;hellip;&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;hr&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;三完整主线剧情&amp;#34;&amp;gt;三、完整主线剧情&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;序章骤雨失航陌路孤岛&amp;#34;&amp;gt;序章：骤雨失航·陌路孤岛&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;船上初遇CG&amp;lt;/strong&amp;gt;：甲板上小女孩拍照，相机脱手，Ethan飞身接住。Mia甜甜道谢，恋人微笑轻声安抚小心。三人合影。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;海难CG&amp;lt;/strong&amp;gt;：风暴中船体断裂，男主Ethan与恋人Joy被冲散。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;苏醒与相遇&amp;lt;/strong&amp;gt;：Ethan在沙滩苏醒，循着哭声在附近礁石缝中找到Mia。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;新手引导&amp;lt;/strong&amp;gt;：Mia用半块饼干分给Ethan，并拿出父亲留下的&amp;lt;strong&amp;gt;生存手册（残破）&amp;lt;/strong&amp;gt;，帮助识别可食用植物、生火、找水源。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;首夜&amp;lt;/strong&amp;gt;：简易草棚中，Mia问“姐姐和爸爸妈妈会没事吗？”Ethan说“一定会的，我们要坚强。”Mia点头，攥紧Ethan的衣角入睡。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;记忆相机&amp;lt;/strong&amp;gt;：Mia的防水相机还能使用，拍下第一个场景“沙滩初营”，存入希望相册。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;初始技能&amp;lt;/strong&amp;gt;：&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;Mia：生存手册&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;Ethan：简单建筑技巧，搭建临时住所&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;第一阶段沙滩扎根初聚人心&amp;#34;&amp;gt;第一阶段：沙滩扎根·初聚人心&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;区域&amp;lt;/strong&amp;gt;：沙滩、近海浅滩 | &amp;lt;strong&amp;gt;猛兽&amp;lt;/strong&amp;gt;：野狼、水鸟 | &amp;lt;strong&amp;gt;BOSS&amp;lt;/strong&amp;gt;：狼群首领&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;招募&amp;lt;/strong&amp;gt;：厨师、女医生&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;核心剧情&amp;lt;/strong&amp;gt;：&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;深夜狼群咬伤厨师，嘶吼声被Ethan听到之后，使用自制火把吓退狼群，救到了厨师。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;女医生，被卡在礁石，三天没有吃喝，绝望之时，被Ethan、Mia救出。医生成为第二个被招募的成员，给被咬伤的厨师包扎伤口。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;沙滩沉船残骸中Ethan发现&amp;lt;strong&amp;gt;恋人的发卡&amp;lt;/strong&amp;gt;，Mia说“姐姐的……她还活着！”&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;技能解锁&amp;lt;/strong&amp;gt;：&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;战斗技巧：通过与狼群战斗发现狼群怕火，并识别野狼弱点（腰腹），标记敌人位置。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;基础药物制作：用海边草药制作简易绷带。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;食物解锁：通过补货海鱼和狼肉进行充饥。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;第二阶段拓荒密林矛盾初生&amp;#34;&amp;gt;第二阶段：拓荒密林·矛盾初生&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;区域&amp;lt;/strong&amp;gt;：草原、阔叶密林 | &amp;lt;strong&amp;gt;猛兽&amp;lt;/strong&amp;gt;：野猪、鬣狗、毒蛇、毒蛙 | &amp;lt;strong&amp;gt;BOSS&amp;lt;/strong&amp;gt;：野猪王、鬣狗头领&amp;lt;/p&amp;gt;</description>
    </item>
    
    <item>
      <title>时间轴设想</title>
      <link>https://domal.cc/thinking/%E6%97%B6%E9%97%B4%E8%BD%B4%E8%AE%BE%E6%83%B3/</link>
      <pubDate>Wed, 12 Aug 2026 18:00:00 &#43;0800</pubDate>
      
      <guid>https://domal.cc/thinking/%E6%97%B6%E9%97%B4%E8%BD%B4%E8%AE%BE%E6%83%B3/</guid>
      <description>&amp;lt;p&amp;gt;阿里技术大事记时间轴 Html 复刻方案&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h1 id=&amp;#34;html可视化时间轴复刻实践分享&amp;#34;&amp;gt;HTML可视化时间轴复刻实践分享&amp;lt;/h1&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;一开发背景&amp;#34;&amp;gt;一、开发背景&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;偶然看到一款双层分流式技术大事记时间轴设计图，整体曲线脉络、上下分层事件卡片、竖排年份标注的视觉形式表现力很强，适合用来展示企业多年技术发展里程碑，于是决定使用原生 HTML/CSS/SVG 进行页面复刻。&amp;#xA;本次复刻没有做到像素级一比一还原，但视觉结构、分层逻辑、矢量绘图核心效果已高度贴近原图，仍有细节优化空间。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;img src=&amp;#34;https://p11-flow-imagex-sign.byteimg.com/tos-cn-i-a9rns2rl98/10e40536619141a89e0c5a47fc93f760.png~tplv-a9rns2rl98-image-qvalue.image?lk3s=8e244e95&amp;amp;amp;rcl=20260813145004D0DEFD984F0C6ACA93F1&amp;amp;amp;rrcfp=1860f75c&amp;amp;amp;x-expires=1787208604&amp;amp;amp;x-signature=yk9IF6ByhAkzGsI9pbhdKBPpLoU%3D&amp;#34; alt=&amp;#34;参考&amp;#34;&amp;gt;&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;二整体技术选型&amp;#34;&amp;gt;二、整体技术选型&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;整体采用&amp;lt;strong&amp;gt;无第三方依赖原生前端方案&amp;lt;/strong&amp;gt;，轻量化、可直接在浏览器打开运行，适配大屏展示场景：&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;ol&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;HTML5&amp;lt;/strong&amp;gt;：语义化结构承载标题、年份事件卡片，划分上下两层事件轨道；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;CSS3&amp;lt;/strong&amp;gt;：变量管理主题色、绝对定位布局、文字竖排、响应式横向滚动、多层元素层级控制；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;原生 SVG&amp;lt;/strong&amp;gt;：绘制全部时间主线、分支连接线、节点圆点，矢量图形放大不失真；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;不引入 JS、图片、外部样式表，所有逻辑与视觉全部内联在单文件中，打包、分发、使用更便捷。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ol&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;三复刻过程中的核心难点与解决方案&amp;#34;&amp;gt;三、复刻过程中的核心难点与解决方案&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;1-多层曲线时间脉络绘制svg难点&amp;#34;&amp;gt;1. 多层曲线时间脉络绘制（SVG难点）&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;h4 id=&amp;#34;难点&amp;#34;&amp;gt;难点&amp;lt;/h4&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;原图时间轴并非单一直线，是多条交错弯折的折线路径，同时区分主视觉蓝线与灰色辅助线；每条年份节点需要垂直连线连接上下事件卡片，还要区分普通节点与终点标识圆点，手动编写路径坐标极易错位。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h4 id=&amp;#34;解决方案&amp;#34;&amp;gt;解决方案&amp;lt;/h4&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;分层编写 &amp;lt;code&amp;gt;&amp;amp;lt;path&amp;amp;gt;&amp;lt;/code&amp;gt;，区分 &amp;lt;code&amp;gt;.blue&amp;lt;/code&amp;gt; 主线、&amp;lt;code&amp;gt;.thin&amp;lt;/code&amp;gt; 细蓝辅助线、&amp;lt;code&amp;gt;.grey&amp;lt;/code&amp;gt; 灰色分层线，视觉层次和原图对齐；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;统一规划节点坐标，先标记所有年份对应圆点位置，再批量编写垂直连接线，保证卡片和主线一一对应；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;用两类 &amp;lt;code&amp;gt;circle&amp;lt;/code&amp;gt; 区分普通节点与蓝色终点圆点，强化视觉收尾。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;2-上下双层事件卡片定位排版&amp;#34;&amp;gt;2. 上下双层事件卡片定位排版&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;h4 id=&amp;#34;难点-1&amp;#34;&amp;gt;难点&amp;lt;/h4&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;设计分为 &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt; 上层、&amp;lt;code&amp;gt;bottom&amp;lt;/code&amp;gt; 下层两条事件流，同年份可同时存在上下两条记录；所有卡片使用绝对定位，坐标偏移细微就会出现文字重叠、年份文字和主线脱节；竖排年份文字需要紧贴节点左侧，排版容错率极低。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h4 id=&amp;#34;解决方案-1&amp;#34;&amp;gt;解决方案&amp;lt;/h4&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;区分 &amp;lt;code&amp;gt;.entry.top&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;.entry.bottom&amp;lt;/code&amp;gt; 两套定位规则，分别控制上下卡片距离主线的间距；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;单独为竖排年份 &amp;lt;code&amp;gt;.year&amp;lt;/code&amp;gt; 设置 &amp;lt;code&amp;gt;writing-mode: vertical-rl&amp;lt;/code&amp;gt;，独立层级不遮挡正文；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;多轮视觉校正微调 left、bottom/top 坐标，新增多组修正样式，避免卡片互相遮挡；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;为不同长度文案的卡片设置差异化固定宽度，防止文字溢出错乱。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;3-主题色彩统一管理与样式复用&amp;#34;&amp;gt;3. 主题色彩统一管理与样式复用&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;h4 id=&amp;#34;难点-2&amp;#34;&amp;gt;难点&amp;lt;/h4&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;页面多处复用深蓝主色、浅蓝标注色、灰色辅助线，分散写颜色值后期修改成本极高；页面包含标题、年份、正文、标记文字多种字号，样式零散难以维护。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h4 id=&amp;#34;解决方案-2&amp;#34;&amp;gt;解决方案&amp;lt;/h4&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;使用 CSS &amp;lt;code&amp;gt;:root&amp;lt;/code&amp;gt; 定义全局颜色变量 &amp;lt;code&amp;gt;--blue&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;--sky&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;--ink&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;--line&amp;lt;/code&amp;gt;，全局一处修改即可更换整套配色；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;统一封装 &amp;lt;code&amp;gt;.mark&amp;lt;/code&amp;gt; 标记类，用于突出飞天FT3等核心项目标识；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;层级分层控制 z-index：SVG底层曲线 → 年份文字层 → 事件卡片正文，解决元素遮挡问题。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;4-宽幅画布适配与滚动兼容&amp;#34;&amp;gt;4. 宽幅画布适配与滚动兼容&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;h4 id=&amp;#34;难点-3&amp;#34;&amp;gt;难点&amp;lt;/h4&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;完整时间轴画布宽度超过常规屏幕尺寸，直接展示会裁切右侧年份事件；窄屏设备无法完整浏览全部时间线。&amp;lt;/p&amp;gt;</description>
    </item>
    
    <item>
      <title>面向 Hugo 内容管理者的 Windows 桌面客户端</title>
      <link>https://domal.cc/thinking/hugo%E5%90%8E%E7%AB%AF%E8%AE%BE%E6%83%B3/</link>
      <pubDate>Sun, 09 Aug 2026 09:00:00 &#43;0800</pubDate>
      
      <guid>https://domal.cc/thinking/hugo%E5%90%8E%E7%AB%AF%E8%AE%BE%E6%83%B3/</guid>
      <description>&amp;lt;p&amp;gt;记录一款面向 Hugo 内容管理者的 Windows 桌面客户端。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h1 id=&amp;#34;一切的起点hugo-很好但发布太痛了&amp;#34;&amp;gt;一切的起点：Hugo 很好，但“发布”太痛了&amp;lt;/h1&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;我使用 Hugo 搭建个人博客已经很长时间了。坦白说，Hugo 本身作为静态站点生成器，速度快、生态好、主题丰富，几乎无可挑剔。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;但有一个环节，始终让我如鲠在喉——&amp;lt;strong&amp;gt;发布上线&amp;lt;/strong&amp;gt;。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;每一次写完文章，我需要经历的是：&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;打开命令行，cd 到站点目录；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;执行 &amp;lt;code&amp;gt;hugo&amp;lt;/code&amp;gt; 构建，生成 &amp;lt;code&amp;gt;public/&amp;lt;/code&amp;gt; 目录；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;打开 FTP/SFTP 客户端，连接到服务器；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;手动找到远程网站根目录（比如宝塔面板的 &amp;lt;code&amp;gt;/www/wwwroot/xxx&amp;lt;/code&amp;gt;）；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;将本地 &amp;lt;code&amp;gt;public/&amp;lt;/code&amp;gt; 目录里的文件，一个一个上传覆盖；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;刷新浏览器，确认上线。&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;如果只是偶尔写一篇，倒也还能忍。但当你需要频繁更新、修正错别字、调整排版时，这套流程的&amp;lt;strong&amp;gt;重复成本&amp;lt;/strong&amp;gt;就会急剧放大。更别提有时候 SFTP 客户端连接超时、文件漏传、目录搞错——每一步都藏着让人抓狂的细节。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;我也尝试过 Git &#43; GitHub Actions 或 Webhook 的自动化方案，但坦白说，&amp;lt;strong&amp;gt;配置门槛同样不低&amp;lt;/strong&amp;gt;：要在服务器上建 bare 仓库、配置 post-receive hook、设置权限……对于只想安静写点东西的博主来说，这显然是过度工程。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;转折&amp;lt;/strong&amp;gt;忘了具体哪天，我偶然刷到一款叫“一言”的 APP——它的核心功能非常简单：用户在手机端写下几句话，点击发布，内容就会立即出现在个人页面上。没有复杂的后台配置，没有“部署”这个概念，用户感知到的只有一个动作：&amp;lt;strong&amp;gt;写，然后它就上线了&amp;lt;/strong&amp;gt;。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;这个极简体验给了我很大的触动。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;我在想：&amp;lt;strong&amp;gt;Hugo 博客能不能也做到这样？&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;能不能有一个界面，用户只负责：&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;ul&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;在本地打开一个编辑器；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;写 Markdown；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;li&amp;gt;点击一个按钮；&amp;lt;/li&amp;gt;&amp;#xA;&amp;lt;/ul&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;然后剩下的所有事情（保存文件、调用 Hugo 构建、通过 SSH/SFTP 上传到宝塔面板的网站目录）全部由工具自动完成？&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;有想法了，也有目标了，说搞就搞。开始借助AI帮我整理思路，以及项目规划。&amp;lt;/p&amp;gt;&amp;#xA;&amp;lt;h2 id=&amp;#34;一项目全景与核心目标&amp;#34;&amp;gt;一、项目全景与核心目标&amp;lt;/h2&amp;gt;&amp;#xA;&amp;lt;h3 id=&amp;#34;11-我的项目定位&amp;#34;&amp;gt;1.1 我的项目定位&amp;lt;/h3&amp;gt;&amp;#xA;&amp;lt;p&amp;gt;一款面向 Hugo 内容管理者的 Windows 桌面客户端（C# &#43; WPF），让使用者&amp;lt;strong&amp;gt;无需接触命令行&amp;lt;/strong&amp;gt;，在图形界面中完成：&amp;lt;/p&amp;gt;</description>
    </item>
    
  </channel>
</rss>