Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
453 commits
Select commit Hold shift + click to select a range
9f44a02
feat:metadata view transition
StatIndet Aug 21, 2026
06a0d80
.
StatIndet Aug 21, 2026
760ed17
feat:沉浸式阅读
StatIndet Aug 21, 2026
5a0e29e
feat: 沉浸式阅读
StatIndet Aug 21, 2026
dfeebc7
bugs
StatIndet Aug 21, 2026
999cbe7
bugs
StatIndet Aug 21, 2026
bb3d641
firefox浏览器不能正常显示阅读模式顶部进度条
StatIndet Aug 21, 2026
f110791
bugs
StatIndet Aug 21, 2026
363857f
feat:阅读模式进度条
StatIndet Aug 21, 2026
83c4f38
fix: use standard geometry for reader mode progress bar to bypass iOS…
StatIndet Aug 21, 2026
0076fa4
fix: replace linear-gradient with clip-path solid background to bypas…
StatIndet Aug 21, 2026
edc485b
fix: use opacity/visibility instead of display none to force fixed la…
StatIndet Aug 21, 2026
55bf2e5
fix: use sticky position and safe-area-inset-top for reader progress bar
StatIndet Aug 21, 2026
75ccf2d
fix: restore mobile-reading-controls toggle behavior for reader mode …
StatIndet Aug 21, 2026
2cfa731
chore(temp): increase mobile reading progress bar from 2px to 10px fo…
StatIndet Aug 22, 2026
629e52c
fix: use GPU transform translateY(-64px) instead of top:0 in reader m…
StatIndet Aug 22, 2026
745b097
fix: implement true viewport offset for reader mode progress bar
StatIndet Aug 22, 2026
07e8536
feat:阅读模式
StatIndet Aug 22, 2026
27ace49
fix: decouple viewport offset from scroll state to eliminate progress…
StatIndet Aug 22, 2026
61b60f9
fix: completely decouple visual viewport offset to translateY to elim…
StatIndet Aug 22, 2026
9f6a551
feat: implement share composer
StatIndet Aug 22, 2026
0444f5c
fix: adjust share dialog styling and metadata button
StatIndet Aug 22, 2026
a55d1d3
fix: share overlay i18n and font fallback
StatIndet Aug 22, 2026
5d3636c
feat: animate copy button text change
StatIndet Aug 22, 2026
8826460
fix: preserve copy text kerning during animation
StatIndet Aug 22, 2026
6f63f0c
feat:分享界面
StatIndet Aug 22, 2026
58eb4dc
fix: share dialog telegram intent, yaml template and font metrics
StatIndet Aug 22, 2026
b1de52d
fix: eliminate kerning jump by preserving inline text run formatting
StatIndet Aug 22, 2026
1647e3f
pref: about界面性能优化
StatIndet Aug 22, 2026
e7f6909
pref: about界面黄金螺旋性能表现
StatIndet Aug 22, 2026
c14658b
bugs
StatIndet Aug 22, 2026
23ab4f6
pref: about界面性能优化
StatIndet Aug 22, 2026
1b65796
pref: about界面性能优化
StatIndet Aug 22, 2026
f243833
bugs
StatIndet Aug 22, 2026
de5ca93
Need to roll back
StatIndet Aug 22, 2026
08c8ec8
chore: rollback OffscreenCanvas and restore 1b65796 transform segments
StatIndet Aug 22, 2026
6e68e33
pref: 黄金分割曲线性能优化,样式优化
StatIndet Aug 22, 2026
a1bcb8f
fix: 清理自制光标dead code
StatIndet Aug 22, 2026
3ebc2cc
feat: 解除 /graph 界面和 /about 界面的时钟光标样式禁用
StatIndet Aug 22, 2026
f0d7fbc
fix: 减少动画bug
StatIndet Aug 22, 2026
2f3b929
fix: metadata分享链接界面和双语切换按钮的bug。
StatIndet Aug 22, 2026
503ae42
feat: tooltip样式
StatIndet Aug 22, 2026
7e915e5
feat: 公公组件,双语切换按钮
StatIndet Aug 22, 2026
c9f9451
feat:新的favicon
StatIndet Aug 23, 2026
b83e081
feat:更换字体
StatIndet Aug 23, 2026
0a2571e
feat:字体
StatIndet Aug 23, 2026
f025051
feat: make copyright fully customizable and decouple from author name
StatIndet Aug 23, 2026
401ddaa
feat: 关系图谱修正
StatIndet Aug 24, 2026
b0b9262
fix: 关系图谱视窗比例调整
StatIndet Aug 24, 2026
d590f8b
chore: setup release pipeline and installation docs
StatIndet Aug 24, 2026
b863852
chore: delete
StatIndet Aug 24, 2026
f49225c
fix: release workflow
StatIndet Aug 24, 2026
a8a27d4
chore: update npm dependencies
StatIndet Aug 24, 2026
6ae460f
chore: update Go dependencies
StatIndet Aug 24, 2026
7ea07c2
refactor: manage Waline and KaTeX vendor assets via npm scripts
StatIndet Aug 24, 2026
4426ec0
chore: add weekly Dependabot updates
StatIndet Aug 24, 2026
84f0948
Merge pull request #2 from StatIndet/chore/dependency-refresh-2026-08-24
StatIndet Aug 24, 2026
e416911
Merge pull request #3 from StatIndet/refactor/standalone-cli
StatIndet Aug 24, 2026
5e676d2
chore(deps): bump actions/setup-node from 4 to 7
dependabot[bot] Aug 24, 2026
7d35ddc
chore(deps): bump actions/setup-go from 5 to 7
dependabot[bot] Aug 24, 2026
865c6df
chore(deps): bump actions/checkout from 4 to 7
dependabot[bot] Aug 24, 2026
fc5c260
chore(deps): bump softprops/action-gh-release from 2 to 3
dependabot[bot] Aug 24, 2026
6eaa07d
Merge pull request #4 from StatIndet/dependabot/github_actions/action…
StatIndet Aug 24, 2026
d09c93e
Merge pull request #5 from StatIndet/dependabot/github_actions/action…
StatIndet Aug 24, 2026
7aeff46
Merge pull request #6 from StatIndet/dependabot/github_actions/action…
StatIndet Aug 24, 2026
67a8a9e
Merge pull request #7 from StatIndet/dependabot/github_actions/softpr…
StatIndet Aug 24, 2026
3667d94
chore: final standalone repository cleanup
StatIndet Aug 24, 2026
593969b
Merge pull request #8 from StatIndet/chore/final-standalone-cleanup
StatIndet Aug 24, 2026
fbf57ce
test: integrate playwright for frontend runtime smoke tests
StatIndet Aug 24, 2026
067cf0d
fix(build): implement explicit entry manifest with IIFE/ESM separation
StatIndet Aug 24, 2026
48915b5
fix(html): remove duplicated module imports of internal controllers
StatIndet Aug 24, 2026
d8cf6e7
Merge pull request #9 from StatIndet/fix/frontend-runtime-isolation
StatIndet Aug 24, 2026
f04aed5
fix: guard custom cursor event targets
StatIndet Aug 24, 2026
e074dc7
test: fail fast when browser test server cannot start
StatIndet Aug 24, 2026
1fcc18a
ci: install Chromium for browser runtime checks
StatIndet Aug 24, 2026
5658730
Merge pull request #10 from StatIndet/fix/browser-runtime-test-reliab…
StatIndet Aug 24, 2026
b4fbe8e
feat: implement zero-dependency release installer
StatIndet Aug 24, 2026
2e56129
ci: publish installer script to GitHub releases
StatIndet Aug 24, 2026
23423ae
docs: update installation instructions with curl downloader
StatIndet Aug 24, 2026
04c42ac
Merge pull request #11 from StatIndet/feat/release-installer
StatIndet Aug 24, 2026
691a2dc
chore(deps): bump actions/setup-go from 5 to 7
dependabot[bot] Aug 24, 2026
b05c5d5
chore(deps): bump actions/setup-node from 4 to 7
dependabot[bot] Aug 24, 2026
96abc10
feat: 分页和瀑布流
StatIndet Aug 25, 2026
68f8cbd
bugs
StatIndet Aug 25, 2026
1db8327
bugs again
StatIndet Aug 25, 2026
3d6940e
bugsAgain
StatIndet Aug 25, 2026
a8ae54e
feat: archive界面的懒加载
StatIndet Aug 25, 2026
fe8bab8
fix: 搜索与标签按钮
StatIndet Aug 25, 2026
52d8279
chore: clean up temporary test scripts and logs
StatIndet Aug 25, 2026
91cdfa6
Merge pull request #12 from StatIndet/dependabot/github_actions/actio…
StatIndet Aug 25, 2026
a1a5544
Merge pull request #13 from StatIndet/dependabot/github_actions/actio…
StatIndet Aug 25, 2026
f39a84c
chore(deps): bump actions/checkout from 4 to 7
dependabot[bot] Aug 25, 2026
6f064eb
Merge pull request #14 from StatIndet/dependabot/github_actions/actio…
StatIndet Aug 25, 2026
75a31cb
feat: archive界面顶部计数模块
StatIndet Aug 25, 2026
00b06ec
feat: viewing count
StatIndet Aug 25, 2026
4db1091
fix:同步daybook-vault结构更改
StatIndet Aug 25, 2026
2ed56cc
feat: site name
StatIndet Aug 26, 2026
2c65919
feat: site.name 本地化 + 删除 site.title + 删除 seo.siteName
StatIndet Aug 26, 2026
525f5f0
feat: implement cross-platform installer support
StatIndet Aug 26, 2026
7765220
chore: convert install-cli.sh to POSIX sh and add install-cli.ps1 for…
StatIndet Aug 26, 2026
1e50639
fix: resolve Windows PowerShell 5.1 architecture detection and add CI
StatIndet Aug 26, 2026
8ec3754
chore: add UseBasicParsing and detailed errors to PowerShell installer
StatIndet Aug 26, 2026
2993367
docs
StatIndet Aug 26, 2026
bb4e9f5
chore: remove unused new_archive.ts
StatIndet Aug 26, 2026
0c34d99
chore: rm screenshot
StatIndet Aug 26, 2026
89735be
fix: 英雄区域悬挂专属签名类名。
StatIndet Aug 26, 2026
bae1ca0
fix: 文章内嵌html和附件图片相对路径报错
StatIndet Aug 26, 2026
d1901ca
Update README.md
StatIndet Aug 27, 2026
5620616
docs:
StatIndet Aug 27, 2026
665834b
Update README.md
StatIndet Aug 27, 2026
7ce3321
Create FUNDING.yml
StatIndet Aug 29, 2026
ed6537a
Modify FUNDING.yml for Ko-fi and custom funding
StatIndet Aug 29, 2026
d979e18
Delete .github/FUNDING.yml
StatIndet Aug 29, 2026
fd1c9bd
Add Ko-fi and custom funding link
StatIndet Aug 29, 2026
5c71e4a
Update FUNDING.yml
StatIndet Aug 29, 2026
ea3b7e5
funding
StatIndet Aug 29, 2026
500116f
Add support links to README
StatIndet Aug 29, 2026
78ae9a2
fix: preserve inline styles and standard link attributes in embedded …
StatIndet Aug 29, 2026
942e18d
refactor: completely replace zh-CN and en with zh_CN and en_US
StatIndet Aug 29, 2026
e6c1206
fix: output standard hyphenated locale code for HTML lang and Waline …
StatIndet Aug 29, 2026
9d5e7e9
feat: add progress bar to daybook build command
StatIndet Aug 29, 2026
aa831b7
feat: add multi-stage progress reporting for build process
StatIndet Aug 29, 2026
ab42664
refactor: redesign global build progress model
StatIndet Aug 29, 2026
5268d14
feat: synchronize GitHub profile data and redesign homepage
StatIndet Oct 1, 2026
719d68c
fix: separate UI language from articles and repair reading layouts
StatIndet Oct 1, 2026
ce4356d
perf: subset fonts and defer assets with immutable caching
StatIndet Oct 1, 2026
97f327c
test: wait for completed page swaps during history traversal
StatIndet Oct 1, 2026
7997186
feat: simplify the GitHub homepage with layered cards
StatIndet Oct 1, 2026
810965c
feat: unify GitHub homepage links and tooltips with site controls
StatIndet Oct 1, 2026
2c7de7b
feat: replace link underlines with hand-drawn marker swipes
StatIndet Oct 1, 2026
f546e4f
fix: simplify marker bands and slow their reveal animation
StatIndet Oct 2, 2026
d90d817
fix: scope marker effects to navigation and text actions sitewide
StatIndet Oct 2, 2026
bfe3755
fix: adjust marker coverage for followers and social links
StatIndet Oct 2, 2026
5016305
fix: remove hover feedback from the mobile menu
StatIndet Oct 2, 2026
816c572
feat: identify social links with local brand icons and readable names
StatIndet Oct 2, 2026
09a4225
fix: render profile README without card framing
StatIndet Oct 2, 2026
eb65a03
fix: sync and display GitHub profile pronouns
StatIndet Oct 2, 2026
a517627
refactor: use persistent logo text as the site name
StatIndet Oct 2, 2026
40d7ba3
fix: center reading layouts and unify desktop page controls
StatIndet Oct 2, 2026
0e93e23
fix: center article content and restore desktop tool overlays
StatIndet Oct 2, 2026
080a1ca
fix: keep article outline sticky and prevent repeated entrance motion
StatIndet Oct 2, 2026
59f49d2
fix: mirror reading outline labels to the outside of the rail
StatIndet Oct 2, 2026
b877bcd
fix: reuse graph simulation and preserve nodes across filter changes
StatIndet Oct 2, 2026
c0c4cc9
refactor: unify fonts by UI locale and remove unused signatures
StatIndet Oct 2, 2026
a5735ac
fix: balance body font metrics and restore italic article metadata
StatIndet Oct 2, 2026
b4f03c7
fix: show GitHub username and pronouns on one line
StatIndet Oct 2, 2026
2ba9610
feat: render Material-style gallery carousels with smooth scrolling
StatIndet Oct 2, 2026
f4c7dc2
feat: migrate comments from Waline to giscus
StatIndet Oct 2, 2026
2a64285
fix: keep article metadata and statistics in Cormorant Garamond
StatIndet Oct 2, 2026
b0617ca
chore(deps-dev): bump katex from 0.18.4 to 0.18.9
dependabot[bot] Oct 2, 2026
b3af3ca
chore(deps-dev): bump material-symbols from 0.46.0 to 0.47.5
dependabot[bot] Oct 2, 2026
799fd2a
chore(deps-dev): bump playwright from 1.62.1 to 1.63.0
dependabot[bot] Oct 2, 2026
88946d9
chore:移除listed笔记属性
StatIndet Oct 2, 2026
9979731
feat(cli): 支持指定预览地址并隔离测试端口
StatIndet Oct 3, 2026
e25ca9e
feat(memos): 新增随记时间线与独立内容规则
StatIndet Oct 3, 2026
1a7e225
test(memos): 覆盖发布规则与浏览器交互回归
StatIndet Oct 3, 2026
8dae593
docs: 说明随记写作与笔记属性迁移
StatIndet Oct 3, 2026
41e73e9
feat: add likes, RSS subscriptions and shared memo post actions
StatIndet Oct 4, 2026
97fa415
test: wait for view transitions between browser smoke navigations
StatIndet Oct 4, 2026
2e7a342
docs: require logical commits and a clean working tree after implemen…
StatIndet Oct 4, 2026
ff82db4
fix(memos): align detail posts and refine metadata typography
StatIndet Oct 4, 2026
04eed63
feat(memos): support multi-select tags and dates with touch long press
StatIndet Oct 4, 2026
8f623c4
style(memos): enlarge italic metadata and updated label
StatIndet Oct 4, 2026
f9dd2ec
feat(stats): animate changing counters with shared number flips
StatIndet Oct 4, 2026
e98d345
fix(archive): restore count-up animation for header statistics
StatIndet Oct 4, 2026
65458ba
fix(memos): display publication and updated dates without time
StatIndet Oct 4, 2026
6b45480
feat(memos): add captioned photo previews with overflow badge
StatIndet Oct 4, 2026
c21ef93
fix(memos): constrain image previews and smooth overflow badge
StatIndet Oct 4, 2026
9db50c6
style(markdown): remove media and code borders
StatIndet Oct 4, 2026
f0d27bd
feat(reader): retain the outline in immersive mode
StatIndet Oct 4, 2026
ee7577b
feat(lightbox): add image navigation zoom and touch controls
StatIndet Oct 4, 2026
20857e0
style(ui): align mobile overlays at top and unify lightbox tooltips
StatIndet Oct 4, 2026
6d6c3b5
Refine mobile theme selector with solid styling and trailing motion
StatIndet Oct 4, 2026
b7df984
Use a borderless tonal track for the mobile theme selector
StatIndet Oct 4, 2026
d750d2c
Fix the sixth sidebar navigation item's stagger timing
StatIndet Oct 4, 2026
bd6db47
Use shadowed text for memo image overflow labels
StatIndet Oct 4, 2026
4bdf3bf
Use an edge gradient behind memo overflow labels
StatIndet Oct 4, 2026
2115963
Reduce memo image gradient height and intensity
StatIndet Oct 4, 2026
db94660
feat(graph): publish directed graph and safe search metadata
StatIndet Oct 4, 2026
0c421be
feat(graph): add filtering, style controls and timeline animation
StatIndet Oct 4, 2026
6587903
test(memos): wait for responsive layout before measuring
StatIndet Oct 4, 2026
09702a7
refactor(graph): restore toolbar and remove color groups
StatIndet Oct 4, 2026
21765ed
refactor(graph): move filters to toolbar and expand settings
StatIndet Oct 4, 2026
9093356
fix(graph): restore smooth node and link hover animations
StatIndet Oct 4, 2026
60289c9
fix(graph): use borderless accent fill for hovered nodes
StatIndet Oct 4, 2026
1cc0b8f
refactor(graph): toggle growth animation from toolbar
StatIndet Oct 4, 2026
8608fe2
feat: generate static Open Graph cards for notes and memos
StatIndet Oct 4, 2026
485db5c
fix: align OG card typography and author branding
StatIndet Oct 4, 2026
5118d66
refactor(graph): align settings controls with material motion
StatIndet Oct 4, 2026
d7f54a4
refactor(graph): remove numeric steppers from settings
StatIndet Oct 4, 2026
4e51b42
refactor(graph): compact settings and adapt narrow layouts
StatIndet Oct 4, 2026
3515d58
fix(graph): float slider values above the handle
StatIndet Oct 4, 2026
0795de4
fix(graph): keep mobile top bar above settings layer
StatIndet Oct 4, 2026
817363c
feat(cli): rebuild build progress with adaptive Pac-Man feedback
StatIndet Oct 4, 2026
6770c95
chore(deps): bump github.com/yuin/goldmark from 1.8.5 to 1.8.6
dependabot[bot] Oct 4, 2026
7bda839
Refine graph panel actions and lightbox button shapes
StatIndet Oct 4, 2026
0cd8a7f
Make cursor effects opt-in and hide reduced-motion About decoration
StatIndet Oct 4, 2026
d597a33
Add paper privacy dialog and consent-aware runtime APIs
StatIndet Oct 4, 2026
424ed91
Refine privacy paper layout and add a details page
StatIndet Oct 5, 2026
1f19cd3
Add adaptive navigation loading feedback and fix cursor lifecycle
StatIndet Oct 5, 2026
d531821
Refine navigation progress with asymmetric Material motion
StatIndet Oct 5, 2026
90b88b6
Double desktop liquid loading cursor size
StatIndet Oct 5, 2026
6fb77e2
Smooth liquid cursor loading entry and exit transitions
StatIndet Oct 5, 2026
43590d2
Add smooth hover ring to custom cursor
StatIndet Oct 5, 2026
71b4b39
Refine hover cursor with compact diamond and matching outline
StatIndet Oct 5, 2026
6536fb7
Use natural dimensions for hover cursor diamonds
StatIndet Oct 5, 2026
76783a0
Restore unchecked system cursor preference
StatIndet Oct 5, 2026
f1911bc
Merge pull request #19: update Goldmark to 1.8.6
StatIndet Oct 5, 2026
5393118
Merge pull request #25: update Playwright to 1.63.0
StatIndet Oct 5, 2026
447e051
Merge pull request #28: update Material Symbols to 0.47.5
StatIndet Oct 5, 2026
146a887
Merge pull request #29: update KaTeX to 0.18.9
StatIndet Oct 5, 2026
cf3d897
Align OG runtime and regenerate assets for dependency updates
StatIndet Oct 5, 2026
8a1768b
Fix release lookup rate limits and document CI renderer setup
StatIndet Oct 5, 2026
7c83148
Support installing Chromium system dependencies for OG builds
StatIndet Oct 5, 2026
8816816
fix(og): support unprivileged Linux build environments
StatIndet Oct 5, 2026
7da3a17
test(og): complete the minimal rootless vault fixture
StatIndet Oct 5, 2026
10d63fa
fix(og): provide Fontconfig settings for extracted Linux libraries
StatIndet Oct 5, 2026
1f55bf6
chore(deps): bump golang.org/x/net from 0.26.0 to 0.59.0
dependabot[bot] Oct 5, 2026
8504ff7
chore(deps-dev): bump material-symbols from 0.47.5 to 0.47.6
dependabot[bot] Oct 5, 2026
38a2d08
Restore original liquid loading cursor size
StatIndet Oct 5, 2026
2b2d841
Delay loading feedback and let cursor entrances settle
StatIndet Oct 5, 2026
6c61227
Enlarge liquid cursor droplets and balance their motion
StatIndet Oct 5, 2026
c8be39f
Encode droplet proportions directly in motion keyframes
StatIndet Oct 5, 2026
2459b5c
Add an inline pixel dinosaur scene for empty memos
StatIndet Oct 6, 2026
7318d0d
Keep privacy navigation within the settings paper
StatIndet Oct 6, 2026
b6ac077
Use scale fade for privacy page transitions
StatIndet Oct 6, 2026
ef92dd2
Reuse settings paper shell for RSS subscription dialog
StatIndet Oct 6, 2026
7cf52b8
Reuse shared text roll for RSS copy feedback
StatIndet Oct 6, 2026
f9ef66d
Keep RSS copy label layout stable through text roll cleanup
StatIndet Oct 6, 2026
2d2abc1
Percent-encode article and memo share URL paths
StatIndet Oct 6, 2026
66bfee9
Inherit GitHub card hover color for repository names
StatIndet Oct 6, 2026
acba7a5
Restore compact graph search and document query syntax
StatIndet Oct 6, 2026
4cf5993
Fix collapsible callout arrow missing from icon font
StatIndet Oct 6, 2026
d0b9d09
fix: keep reading TOC curve within rail endpoints
StatIndet Oct 6, 2026
a35ded1
fix: preserve TOC endpoint folds and allow full overflow
StatIndet Oct 6, 2026
052dd73
fix: anchor TOC highlight to curve arc length
StatIndet Oct 6, 2026
22dbcb0
fix: draw TOC highlight as an explicit solid curve
StatIndet Oct 6, 2026
70ee7e0
test: make TOC diagnostics opt-in and streamline checks
StatIndet Oct 6, 2026
b7272dd
chore: ignore local preview build output
StatIndet Oct 6, 2026
ef169a4
Refine article metadata rows and about engagement actions
StatIndet Oct 6, 2026
68fa6ab
Restore icon-only article actions with tooltips
StatIndet Oct 6, 2026
7905b0c
Use upright text in shared tooltips
StatIndet Oct 6, 2026
8a2c10e
chore(deps-dev): bump katex from 0.18.9 to 0.19.0
dependabot[bot] Oct 6, 2026
4a214a3
Merge pull request #30 from StatIndet/dependabot/go_modules/golang.or…
StatIndet Oct 6, 2026
ebd17d2
Merge pull request #31 from StatIndet/dependabot/npm_and_yarn/katex-0…
StatIndet Oct 6, 2026
62f40b5
Merge pull request #32 from StatIndet/dependabot/npm_and_yarn/materia…
StatIndet Oct 6, 2026
60f727d
chore(deps): group weekly Dependabot updates
StatIndet Oct 6, 2026
1ce126e
chore: rebuild embedded assets for dependency updates
StatIndet Oct 6, 2026
604d84b
Make the site custom cursor an opt-in preference
StatIndet Oct 7, 2026
cc04fb3
chore(deps): bump the go-dependencies group with 2 updates
dependabot[bot] Oct 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ko_fi: shizhi

custom:
- "https://afdian.com/a/shi-zhi"
46 changes: 46 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
versioning-strategy: "increase"
groups:
build-tools:
patterns:
- "esbuild"
- "fontkit"
- "playwright"
- "sharp"
- "subset-font"
- "typescript"
update-types: ["minor", "patch"]
fonts-and-icons:
patterns:
- "@chinese-fonts/*"
- "@fontsource/*"
- "@fontsource-variable/*"
- "lxgw-wenkai-screen-web"
- "material-symbols"
update-types: ["minor", "patch"]
katex:
patterns: ["katex"]
update-types: ["minor", "patch"]

- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
groups:
go-dependencies:
patterns: ["*"]
update-types: ["minor", "patch"]

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
github-actions:
patterns: ["*"]
update-types: ["minor", "patch"]
109 changes: 109 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: CI

on:
push:
branches:
- main
pull_request:

permissions:
contents: read

jobs:
check-unix:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v7

- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'

- name: Setup Go
uses: actions/setup-go@v7
with:
go-version-file: 'go.mod'

- name: Install dependencies
run: npm ci

- name: Install OG runtime and Chromium system dependencies
run: go run ./cmd/daybook setup-og --with-deps

- name: Check POSIX syntax
run: shellcheck -s sh scripts/install.sh

- name: Test OG rendering without root in a minimal Ubuntu image
run: bash scripts/test-og-user-deps.sh

- name: Run checks
run: ./scripts/check.sh

check-windows:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v7

- name: Setup Go
uses: actions/setup-go@v7
with:
go-version-file: 'go.mod'

- name: Build Native Binary
run: |
go build -o daybook.exe ./cmd/daybook
.\daybook.exe --version

- name: Verify cross-build capability (arm64)
run: |
$env:GOOS = "windows"
$env:GOARCH = "arm64"
go build -o daybook_arm64.exe ./cmd/daybook
shell: powershell

- name: Test Architecture Mapping (WOW64)
shell: powershell
run: |
$ScriptCode = Get-Content -Raw -Path scripts\install.ps1
$FunctionOnly = ($ScriptCode -split "# 1. Detect OS & Architecture")[0]

# Simulate WOW64 (x86 PowerShell on x64 Windows)
$env:PROCESSOR_ARCHITECTURE = "x86"
$env:PROCESSOR_ARCHITEW6432 = "AMD64"

$ArchResult = Invoke-Command -ScriptBlock ([scriptblock]::Create($FunctionOnly + "`nGet-DaybookArchitecture"))
if ($ArchResult -ne "amd64") {
throw "WOW64 Simulation failed. Expected amd64, got $ArchResult"
}

# Simulate ARM64
$env:PROCESSOR_ARCHITECTURE = "ARM64"
Remove-Item Env:\PROCESSOR_ARCHITEW6432 -ErrorAction SilentlyContinue

$ArchResult2 = Invoke-Command -ScriptBlock ([scriptblock]::Create($FunctionOnly + "`nGet-DaybookArchitecture"))
if ($ArchResult2 -ne "arm64") {
throw "ARM64 Simulation failed. Expected arm64, got $ArchResult2"
}

- name: Test Installer (PowerShell 5.1)
shell: powershell
run: |
$env:DAYBOOK_INSTALL_DIR = "$env:RUNNER_TEMP\daybook-test-ps5"
& .\scripts\install.ps1

if (-not (Test-Path "$env:DAYBOOK_INSTALL_DIR\daybook.exe")) {
throw "Executable not found in install dir"
}

- name: Test Installer (PowerShell 7)
shell: pwsh
run: |
$env:DAYBOOK_INSTALL_DIR = "$env:RUNNER_TEMP\daybook-test-pwsh"
& .\scripts\install.ps1

if (-not (Test-Path "$env:DAYBOOK_INSTALL_DIR\daybook.exe")) {
throw "Executable not found in install dir"
}
108 changes: 108 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Release

on:
push:
tags:
- 'v*'

jobs:
build-and-release:
name: Build and Release
runs-on: ubuntu-latest
permissions:
contents: write
actions: read

steps:
- name: Checkout Code
uses: actions/checkout@v7

- name: Require successful CI for this commit
env:
GH_TOKEN: ${{ github.token }}
run: |
successful_runs=$(gh api --method GET "repos/$GITHUB_REPOSITORY/actions/workflows/ci.yml/runs" \
-f head_sha="$GITHUB_SHA" -f event=push -f branch=main -f status=success \
--jq '.workflow_runs | length')
if [ "$successful_runs" -eq 0 ]; then
echo "::error::This release commit has no successful main-branch CI run. Wait for its CI to pass, then rerun this release workflow."
exit 1
fi

- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'
cache: 'npm'

- name: Setup Go
uses: actions/setup-go@v7
with:
go-version-file: 'go.mod'
cache: true

- name: Build Frontend Assets
run: |
npm ci
npm run typecheck
npm run build:js
npm run build:vendor

- name: Build Binaries
env:
CGO_ENABLED: 0
run: |
VERSION=${GITHUB_REF_NAME}
LDFLAGS="-s -w -X 'main.Version=daybook ${VERSION}'"

build_target() {
local os=$1
local arch=$2
local ext=$3
local outdir="release/${os}_${arch}"
mkdir -p "$outdir"
cp LICENSE "$outdir/"

local bin_name="daybook"
if [ "$os" = "windows" ]; then
bin_name="daybook.exe"
fi

GOOS=$os GOARCH=$arch go build -ldflags "${LDFLAGS}" -o "$outdir/$bin_name" ./cmd/daybook

cd "$outdir"
if [ "$ext" = "zip" ]; then
zip -q "../../daybook_${VERSION}_${os}_${arch}.zip" "$bin_name" LICENSE
else
tar -czf "../../daybook_${VERSION}_${os}_${arch}.tar.gz" "$bin_name" LICENSE
fi
cd ../..
}

# Matrix targets
build_target linux amd64 tar.gz
build_target linux arm64 tar.gz
build_target darwin amd64 tar.gz
build_target darwin arm64 tar.gz
build_target windows amd64 zip
build_target windows arm64 zip
build_target freebsd amd64 tar.gz
build_target openbsd amd64 tar.gz
build_target openbsd arm64 tar.gz
build_target netbsd amd64 tar.gz
build_target dragonfly amd64 tar.gz

- name: Generate Checksums
run: |
sha256sum daybook_*.tar.gz daybook_*.zip > checksums.txt

- name: Release
uses: softprops/action-gh-release@v3
with:
files: |
daybook_*.tar.gz
daybook_*.zip
checksums.txt
scripts/install.sh
scripts/install.ps1
generate_release_notes: true
50 changes: 50 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Build output
/public/
/daybook
/bin/
/.preview/

# Go generated files
*.test
coverage.out
*.prof

# Future search output
/.pagefind/

# Local caches
/.cache/
/tmp/
/temp/

# Temporary files
*.tmp
*.log

# macOS
.DS_Store

# Obsidian
**/.obsidian/*
!**/.obsidian/app.json

# Keep directory placeholders
Thumbs.db

# Local environment
.env
.env.*
!.env.example
/config.yaml

# Editors
.vscode/
.idea/

# Dependencies
node_modules/

# README files in subdirectories
[Rr][Ee][Aa][Dd][Mm][Ee].*
!/README.md
!/readme.md
49 changes: 49 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# AGENTS.md

## Project Overview

`daybook` is a minimalist static blog generator for Go and HTML beginners. The project is currently in the **Maintenance and Refactoring Phase**. The architecture has been migrated to a fully standalone CLI model.

## Standalone Architecture

**CRITICAL**: `StatIndet/daybook` is the Daybook CLI source repository. It is **NOT** a blog vault. There is no `content/` folder, no root `daybook.yaml`, and no Cloudflare Pages Functions in this repository.

The directory structure is strictly separated into source code and embedded assets:

* `assets/ts/`: First-party TypeScript source code.
* `internal/embedded/`: The root directory for embedded templates and static assets.
* `internal/embedded/templates/`: Go HTML templates (`layouts/`, `pages/`, `partials/`).
* `internal/embedded/static/css/`: Global CSS and page-specific styles.
* `internal/embedded/static/js/`: **Generated** JavaScript files.
* `internal/embedded/static/vendor/`: **Generated** third-party runtime assets (Fonts, KaTeX).
* `cmd/daybook/`: The CLI entry point.
* `internal/`: Core Go application logic.

### User Vaults
The CLI operates on a user's Vault, which is an external working directory independent of this repository. A user vault contains `daybook.yaml` and `notes/`.
The `daybook build` command reads the current working directory as the vault and outputs to `public/`.

## Development Guidelines

### Frontend & Vendors
* **Do not directly modify files in `internal/embedded/static/js/`.** Modify `assets/ts/*.ts` and run `npm run build:js`.
* **Do not directly modify files in `internal/embedded/static/vendor/`.** npm packages in `package.json` are the single source of truth. Updates to vendors should be done by bumping npm versions and running `npm run build:vendor`.
* Release builds will strictly rebuild vendor assets from `node_modules`.

### Workflow
When making changes, follow this pipeline:
1. Source code changes (Go, TS, HTML, CSS).
2. `npm run build:js` or `npm run build:vendor` if applicable.
3. `go build` to verify compilation.
4. Run `./scripts/check.sh` to perform integrity checks and a temporary external vault smoke test.

### Protected Layout & Design
The UI/UX is considered stable. Do not modify the existing UI layout, View Transitions, side navigation, persistent logos, or typography unless explicitly requested by the user. Ensure CSS modifications only target the specific components intended.

### Cloudflare Deployment
Cloudflare deployment is a concern of the user's vault and output deployment workflow, not this source repository. There is no longer a Cloudflare Pages Functions architecture embedded within the Daybook source tree.

## Commit & PR Rules
* Provide clean, logical commits. At the end of requested implementation work, commit completed changes in logical batches and leave the working tree clean; do not discard unrelated changes or push unless requested.
* Make sure `npm ci && npm run typecheck && npm run build:js && npm run build:vendor` pass locally before pushing.
* `check.sh` is the definitive gating script for PRs and local validation.
Loading
Loading