Skip to content

Releases

dsh-calendar 1.1.0 — 三套可切换皮肤(Y2K / Win95 / 赛璐璐)

Choose a tag to compare

@AloneFu AloneFu released this 04 Oct 07:17

隐私说明(2026-10-04):本附件做过一次脱敏重建。打包进包的 DEVELOPMENT.md 曾包含个人目录名与真实待办文本,现已替换为占位符(<user> / 日记 / …);scripts/*.test.mjs 里的真实目录名同样改为通用名。代码与 tag 一致,只有文档文本脱敏。

dsh-calendar 1.1.0 — 三套可切换皮肤

在 DSH 右侧栏里看 Obsidian 日记、待办与 Day Planner 时间轴。1.1.0 的主题是外观可切换,
外加两个真实缺陷修复。

新增:三套皮肤,页内一键切换

默认 Y2K 保留不动,新增两套,并存、不重载页面切换,选择存在 localStorage['cal-skin']:

  • Y2K(默认):淡蓝渐变、气泡字、玻璃质感
  • Win95:青绿桌面 + #c0c0c0 灰面 + outset/inset 立体边 + 海军蓝→亮蓝渐变标题条
    (右侧三个纯装饰窗口键标了 aria-hidden);日期格白底 1px 立体边;配色限定经典 16 色;
    菜单条 + 16px 网纹滚动条 + 桌面网纹(纯 CSS,无图片)
  • 赛璐璐(Cel Shading):3px 硬描边 + 4px 4px 0 硬位移阴影 + 平面饱和色,
    禁用渐变/模糊/圆角;按钮 hover 位移、active 挤压并归零阴影、白色斜条纹扫过

皮肤语法:?skin=y2k|win95|cel,与 ?theme=light|dark 正交(2×3 共 6 种组合)。
优先级:?skin= > localStorage > 默认 y2k。三套 CSS 都在同一个文件里,切换只翻一个属性,
不重载、不拉新资源。字体按皮肤只加载一套(Fredoka+Nunito / VT323 / Baloo 2),
?font=0 仍可全关;42 格数字始终走系统字体栈以保住 tabular-nums 对齐。

修复

  • 面板兜底高度少算了 28px:fit-logic 里表头栈一直按 154px 估算,实际漏算了星期行的外边距
    (18 + 21)与 .cal-head 的 2px 上内边距;浏览器实测三套皮肤最坏 171px。
    兜底高度随之 430px → 440px(lib/client.js),赛璐璐皮肤下月份网格不再被裁。
  • 无障碍(本轮审查发现):赛璐璐按钮的 :focus-visible 焦点环原本是强调红、与按钮底色撞色
    (等于没有焦点提示)→ 改为墨色描边 + 外扩留缝;输入框焦点环改用强调红(米白底上 4.1:1);
    装饰性位移/斜条纹补齐 prefers-reduced-motion;星期表头放弃 2.6:1 的强调蓝,改用实心墨。

体积政策澄清

本项目真正的外部硬约束是文件头 64KB 切片必须是合法 UTF-8(交付 gate 的切法),
而不是"总体积 < 64KB"——后者是此前自己加的余量。三套皮肤使页面增至 82,595 B,
自加上限调整为 90 KiB(92,160 B),而硬约束校验一字未改(头部切片 fatal 解码仍在断言里)。
已实测交付管道是校验而非截断:取回的字节数 == 文件字节数。

质量

  • 页面无头断言 39 → 71 项(新增 Win95 / 赛璐璐 / 切换按钮与持久化三组)
  • 仓库 5 套零依赖回归共 317 项断言(npm test,不需要浏览器)
  • 商店截图扩到 8 张(基础 4 张 + Win95 / 赛璐璐各 2 张),由 scripts/store-shots.mjs 用无头浏览器生成
  • 打包:node scripts/pack.mjs(回归 → 体积守卫 → npm pack)

安装

dsh plugin --profile web add "<路径>\dsh-calendar-1.1.0.tgz"

配置与用法与 1.0.0 完全一致(首次打开右侧栏按向导填 Obsidian 日记文件夹即可)。
完整说明见 README.md,
变更见 CHANGELOG.md。

附件:dsh-calendar-1.1.0.tgz

dsh-calendar 1.0.0 — 把 Obsidian 内联进 DSH

Choose a tag to compare

@AloneFu AloneFu released this 19 Sep 08:17

隐私说明(2026-10-04):本附件做过一次脱敏重建。打包进包的 DEVELOPMENT.md 曾包含个人目录名与真实待办文本,现已替换为占位符(<user> / 日记 / …);scripts/*.test.mjs 里的真实目录名同样改为通用名。代码与 tag 一致,只有文档文本脱敏。

dsh-calendar 1.0.0 — 把 Obsidian 内联进 DSH

在 DeepSeek Harness 的右侧栏里打开你的 Obsidian 日记:月历、当天时间轴(Day Planner 风格)、
待办与日记正文;勾选完成 / 改内容 / 改时间都会写回你的 Markdown 原文件。

本次亮点

首次使用向导:装好打开侧栏时若还没配置,面板会显示「连接 Obsidian」——
点「自动寻找」会在常见位置找带 .obsidian 的目录、读出它的 Daily Notes 文件夹并填好建议值;
也可以手动填路径。保存即用,不用重启。

给 AI / 命令行的安装接口:scripts/setup.mjs(--print / --detect [--json] / --root <路径> / --dsh-home)
与 HTTP GET|POST /dsh-calendar/setup 共用同一套实现 —— 把 README 给 AI 看,它能自己把路径配好。

与已装的 Obsidian 插件对齐

  • Day Planner:HH:mm - HH:mm / 单点 HH:mm 时间块 → 紧凑时间轴、「现在」红线、完成进度条;
    新建带时间的待办自动写进 # Day planner 小节;读它的 startHour / defaultDurationMinutes / showNow
  • Calendar(Liam Cain):日期格字数点(wordsPerDot)+ 悬停 已写 N 词 · x/y 个任务完成
  • Tasks 语法:- [ ]/[x]/[-]、📅⏳🛫➕✅❌🔁、⏫🔼🔽⏬🔺、#tag

双向同步:Obsidian 改 → DSH 15 秒内跟上;DSH 点圆圈 → 写回 - [x] … ✅ 2026-09-19。
写回有护栏:乐观并发(expect 不符即 409 不写)、原子写 + 回读校验、realpath 越界拦截、
逐行最小改动、同文件串行写、审计日志(不进你的 vault)。

界面:iOS 视觉月历(周一起始、今日高亮、无边框阴影)、背景渐变、点击波纹、任务正文就地编辑、
进入会话自动展开日历 tab(按会话记账,手动关掉不弹回)。

质量

  • 零运行时依赖:host 半边只用 Node 内建模块,client 半边只用平台自带的 React
  • 5 套回归、317 项断言,不需要浏览器、不需要 Obsidian:npm test
  • CI:GitHub Actions 在 Node 20 / 22 上跑全部回归 + 页面体积守卫(< 64KB)+ 打包
  • 跨平台:路径守卫同时覆盖 Windows(盘根/C:\Users\me)与 POSIX(/、/home/me、macOS /System)

安装

# 插件市场搜索 dsh-calendar,或:
dsh plugin --profile web add "<路径>\dsh-calendar-1.0.0.tgz"

首次打开右侧栏日历 → 按向导填 Obsidian 日记文件夹即可。

文档

附件:dsh-calendar-1.0.0.tgz(91.8 KB)—— 包含 lib / standalone / scripts / README / LICENSE / CHANGELOG。