本博客集成了 Git 提交历史展示功能,包含两个部分:
/diff) - 展示完整的提交历史,支持分页浏览
GitHub API 有速率限制(未认证每小时 60 次请求),建议配置 Token 提升到每小时 5000 次:
public_repo 或留空即可).env 文件中添加:PUBLIC_GITHUB_TOKEN=your_github_token_here
编辑 src/config.ts,配置你的仓库信息:
export const gitCommitConfig: GitCommitConfig = {
enable: true, // 是否启用功能
repoOwner: "你的用户名", // GitHub 用户名
repoName: "你的仓库名", // 仓库名称
branch: "main", // 分支名称
pageSize: 6, // 每页显示的提交数量
};
创建 src/pages/diff.astro(或 [...locale]/diff.astro 用于多语言):
---
import MainPageLayout from '@layouts/MainPageLayout.astro'
import Cover from '@components/Cover.astro'
import { siteConfig, profileConfig, gitCommitConfig } from '@/config'
import { getCommitHistory } from '@/utils/git-info';
const allCommits = gitCommitConfig.enable ? await getCommitHistory(100) : [];
---
<MainPageLayout title="更新日志">
<Cover title="更新日志" subTitle="记录每一次更新"/>
<!-- 页面内容 -->
</MainPageLayout>
修改 src/components/Footer.astro,添加以下代码:
---
import { gitCommitConfig } from '@/config'
import { getLatestCommit, formatDate } from '@/utils/git-info'
const latestCommit = gitCommitConfig.enable ? await getLatestCommit() : null
---
{latestCommit && (
<div class="git-commit-info">
<a href={`https://github.com/${gitCommitConfig.repoOwner}/${gitCommitConfig.repoName}/commit/${latestCommit.sha}`} target="_blank">
<span>{latestCommit.shortSha}</span>
<span>{latestCommit.message.split('\n')[0]}</span>
<span>{formatDate(latestCommit.date)}</span>
</a>
</div>
)}
如需在其他地方使用相关类型,可以参考:
// src/types/config.ts
type GitCommitConfig = {
enable: boolean;
repoOwner: string;
repoName: string;
branch: string;
pageSize: number;
};
// src/utils/git-info.ts
interface CommitInfo {
sha: string;
shortSha: string;
message: string;
author: string;
date: string;
totalAdditions: number;
totalDeletions: number;
files: FileChange[];
}
interface FileChange {
filename: string;
status: 'added' | 'removed' | 'modified' | 'renamed';
additions: number;
deletions: number;
changes: number;
blob_url: string;
}
可能是 GitHub API 速率限制导致。解决方案:
PUBLIC_GITHUB_TOKEN 提升限额修改 src/config.ts 中的 pageSize 值:
pageSize: 10, // 改为每页 10 条
将 enable 设为 false:
enable: false,
支持。需要在 GitHub Token 中添加 repo 权限,并在配置中正确设置仓库信息。
更新日志页面使用 CSS 变量适配主题,主要变量:
--card-color /* 卡片背景色 */
--button-border-color /* 边框颜色 */
--button-hover-color /* 悬停背景色 */
--link-color /* 链接颜色 */
--text-color /* 主文字颜色 */
--text-color-70 /* 次要文字颜色 */
--text-color-50 /* 辅助文字颜色 */
你可以在自己的 CSS 中覆盖这些变量来自定义样式。
正在加载评论...