Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
1a90f8f
refactor: 模块化重构 generator 和 runtime
rbetree Jan 15, 2026
89c1c03
refactor: 统一错误处理机制
rbetree Jan 15, 2026
f2f5910
chore: 提交时自动格式化代码
rbetree Jan 16, 2026
87d1f02
chore: 引入统一日志模块,统一 cli 输出
rbetree Jan 16, 2026
0e154bc
fix(cli): dev/dev:offline Ctrl-C 退出防重入并支持二次强制退出
rbetree Jan 16, 2026
d19c4da
fix(icons): faviconV2 加入 drop_404_icon=true 参数避免404占位图以触发回退
rbetree Jan 16, 2026
1049566
feat(theme): 新增主题模式配置,支持跟随系统
rbetree Jan 16, 2026
0c6b3a6
refactor: 重构侧边栏布局,新增独立子菜单面板
rbetree Jan 16, 2026
06bbf33
chore: 排除文档文件的格式检查
rbetree Jan 16, 2026
c693742
feat(ci): 支持禁用 GitHub Pages 部署
rbetree Jan 17, 2026
58f1f16
refactor(ci): 去除ci工作流的prettier格式检查
rbetree Jan 17, 2026
f773b9e
feat: 收紧 gap/padding
rbetree Jan 19, 2026
280d376
feat(templates):新增 Markdown 内容页支持
rbetree Jan 20, 2026
1625f73
feat: 调整页面顶部区域&重构项目页热力图&优化markdown内容页
rbetree Jan 20, 2026
e7a4547
fix: 给侧边栏submenu-header添加一致的过渡动画
rbetree Jan 21, 2026
b457b26
feat: 首页添加时间和todo模块
rbetree Jan 21, 2026
50a416e
feat: 微调样式和配色
rbetree Jan 24, 2026
ca09df8
fix: 修复githubactions的书签文件选择逻辑
rbetree Jan 24, 2026
cc48a02
refactor: 对原本的过长style.css进行拆分
rbetree Jan 24, 2026
eea801b
feat(docker): add production-ready container deployment
rbetree Feb 19, 2026
ebf7ebf
ci(docker): publish ghcr latest and release tags only
rbetree Feb 19, 2026
b2aeb0b
docs: move changelog out of README
rbetree Feb 19, 2026
f45df87
refactor(docker): simplify to single compose + dynamic build default
rbetree Feb 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
.git
.github
.husky
.vscode
.idea

node_modules
dist
dev
coverage
.nyc_output

docs
*.log
npm-debug.log*

.specstory
.spec-workflow
.serena
.claude

4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
*.yaml text eol=lf
*.css text eol=lf
*.html text eol=lf
*.sh text eol=lf

# Husky hooks 必须使用 LF
.husky/* text eol=lf

*.png binary
*.jpg binary
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@ jobs:
- name: Install dependencies
run: npm ci

- name: Format check (changed files)
run: npm run format:check:changed

- name: Lint
run: npm run lint

Expand Down
11 changes: 9 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ jobs:
git commit -m "chore(bookmarks): 导入书签并写回用户配置"
git push "https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}.git" HEAD:${{ github.ref_name }}
# --- 书签处理步骤结束 ---

# --- 网站构建和部署步骤 ---
# 同步时效性数据(best-effort):projects 仓库信息、articles RSS 聚合
# 说明:
Expand All @@ -129,17 +128,25 @@ jobs:
else
echo "Warning: favicon.ico not found in dist directory"
# 暂时改为警告,避免因为图标问题阻止部署
# exit 1
# exit 1
fi

# GitHub Pages 部署步骤(仅在启用时执行)
# 说明:
# - 如果你使用 Vercel/Cloudflare Pages 等第三方平台部署,可以跳过这些步骤
# - 设置 repository variable ENABLE_GITHUB_PAGES=false 来禁用 GitHub Pages 部署
# - 默认启用 GitHub Pages 部署以保持向后兼容
- name: Setup Pages
if: ${{ vars.ENABLE_GITHUB_PAGES != 'false' }}
uses: actions/configure-pages@v4

- name: Upload artifact
if: ${{ vars.ENABLE_GITHUB_PAGES != 'false' }}
uses: actions/upload-pages-artifact@v3
with:
path: 'dist'

- name: Deploy to GitHub Pages
if: ${{ vars.ENABLE_GITHUB_PAGES != 'false' }}
id: deployment
uses: actions/deploy-pages@v4
57 changes: 57 additions & 0 deletions .github/workflows/docker-ghcr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Docker Publish (GHCR)

on:
push:
branches: [main]
tags:
- 'v*'
workflow_dispatch:

permissions:
contents: read
packages: write

concurrency:
group: docker-ghcr-${{ github.ref }}
cancel-in-progress: true

jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=ref,event=tag

- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
platforms: linux/amd64,linux/arm64
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=gha
cache-to: type=gha,mode=max
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,4 @@ tests/fixtures/
.specstory/.what-is-this.md
AGENTS.md
/.claude
/discord-style-navstation
10 changes: 10 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

# 进入仓库根目录,避免在子目录执行 git commit 时找不到脚本/依赖
cd "$(dirname "$0")/.." || exit 1

# Windows Git Bash 下如果需要中文输出不乱码,可在个人环境中设置终端编码/locale
# 这里不强制设置 LANG/LC_ALL,避免在 Linux/macOS 上因 locale 不存在而产生警告

# 优先使用项目内的 lint-staged,避免依赖全局 PATH
./node_modules/.bin/lint-staged
29 changes: 29 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# 依赖和构建产物
node_modules/
dist/
dev/

# npm lockfile(避免提交时产生大面积格式化 diff)
package-lock.json

# Git 配置文件
.gitattributes
.gitignore

# Husky hooks(shell 脚本,不需要 Prettier 格式化)
.husky/

# 缓存文件
*.cache
.cache/

# 日志文件
*.log

# 临时文件
*.tmp
*.temp

# 文档文件(保留排版灵活性,避免代码示例被格式化)
**/README.md
src/**/*.md
Loading