Skip to content

eallion/eallion.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,371 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Hugo blog about Charles 'eallion' Chin

Chance favors the prepared mind.

Build Hugo and Deploy Ask DeepWiki

FOSSA Status GitHub repo size GitHub tag (latest by date) GitHub commits since tagged version GitHub last commit Better Uptime Badge

✨ Live Preview:https://www.eallion.com

备忘录

📦️ 主仓库

https://github.com/eallion/eallion.com

备份仓库

https://gitlab.com/eallion/eallion.com
https://codeberg.org/eallion/eallion.com
https://git.eallion.com/eallion/eallion.com

添加备份仓库 Remote

Tip

Remote url 传递 id:token 免输各个 git 仓库的账号密码

git remote set-url --add --push origin https://id:token@github.com/eallion/eallion.com.git

$ git remote -v
origin	git@github.com:eallion/eallion.com.git (fetch)
origin	git@github.com:eallion/eallion.com.git (push)
origin	git@gitlab.com:eallion/eallion.com.git (push)
origin	git@codeberg.org:eallion/eallion.com.git (push)
origin	git@git.eallion.com:eallion/eallion.com.git (push)
架构备忘

Content Pipeline

Ghost Admin API → ghost-fetch-*.js → Markdown (content/blog/) → Hugo → Pagefind → Deploy
  • Ghost 6 作为 Headless CMS 管理文章内容
  • scripts/ghost-fetch-posts.js 通过 Admin API 拉取文章,转换为 Hugo Markdown
  • scripts/ghost-fetch-pages.js 拉取页面(about、links、stats 等)
  • scripts/fetch-stats.js 聚合外部 API 数据(Mastodon、Steam、NeoDB、Penta、GitHub)
  • scripts/generate-llms.js 生成 LLMs.txt 供 AI 工具使用
  • Hugo 构建静态站点,Pagefind 构建搜索索引

pnpm 命令

# 完整构建
pnpm build

# 仅拉取 Ghost 内容 + 构建
pnpm run fetch:ghost && pnpm run gen:llms && pnpm run build:hugo && pnpm run build:pagefind

Ghost 内容拉取

# 拉取所有文章+页面+统计数据
pnpm run fetch:ghost

# 仅文章
pnpm run fetch:ghost:posts

# 仅页面
pnpm run fetch:ghost:pages

# 仅统计数据
pnpm run fetch:stats

两个抓取脚本支持 CLI 参数:

node scripts/ghost-fetch-posts.js --slug=chrome-extensions,italians --dry-run
node scripts/ghost-fetch-posts.js --limit=3
node scripts/ghost-fetch-pages.js --slug=about --dry-run
参数 简写 说明
--slug <s> -s <s> 按 slug 过滤,逗号分隔多个
--limit <n> -n <n> 限制获取数量
--dry-run 仅预览,不写文件

构建步骤

# TailwindCSS
pnpm build:css

# Chroma 代码高亮 CSS
pnpm build:chroma

# Hugo 静态站点
pnpm build:hugo

# Pagefind 搜索索引
pnpm build:pagefind

# LLMs.txt
pnpm gen:llms

开发

# Tailwind 监听 + Hugo server
pnpm dev

# 本地搜索预览
pnpm dev:pagefind

清理

pnpm clean

主题管理

# 首次初始化子模块
pnpm theme:init

# 更新子模块
pnpm theme:update

Ghost API 细节

  • 必须使用 Admin API(非 Content API)—— 导入的文章 visibility: paid,Content API 不返回正文
  • 分页:?page=N&limit=50,响应含 meta.pagination
  • 格式:?formats=html,lexical,同时拉取 HTML 和 Lexical JSON
  • Lexical Markdown card:{ root: { children: [{ type: 'markdown', version: 1, markdown: "..." }] } }
  • 脚本自动处理 Lexical 扁平索引和 Markdown card 提取,回退到 Turndown HTML→Markdown 转换

主题 Pehe

博客使用主题 Pehe,通过 git submodule 引入。

  • Tailwind CSS 入口:assets/css/input.css
  • 自定义样式:assets/css/custom.css
  • 代码高亮:assets/css/chroma.csspnpm build:chroma 生成)
  • 自定义模板:layouts/_default/(嘀咕页、统计页等)
  • 页面数据:assets/data/(书影音、友情链接等)

嘀咕页面

嘀咕页面 /mastodon 展示 Mastodon 个人实例 e5n.cc/@eallion 的数据。

博客评论系统也基于 Mastodon,通过 Mastodon API 拉取嘟文回复作为文章评论。


写新文章

Ghost 后台 撰写文章,保存发布后运行:

pnpm run fetch:ghost:posts
# 或完整构建
pnpm build

抓取脚本会从 Ghost Admin API 拉取文章,自动处理 Lexical Markdown 转换,并给 CDN 图片 URL 追加 stylename(!hugo.webp,代码块内不处理)。


环境变量

复制 .env.example.env.local

cp .env.example .env.local
变量 说明
GHOST_ADMIN_API_KEY Ghost Admin API 密钥
GHOST_ADMIN_API_URL Ghost API 地址
STEAM_WEB_API_KEY Steam API 密钥
NEODB_ACCESS_TOKEN NeoDB API 访问令牌
DEEPSEEK_API_KEY DeepSeek API 密钥

图片

文章题图

通过 Ghost 后台的图片上传功能上传,文章中直接引用图片 CDN URL。如果没有设置题图,可在 config/params.toml 中提供默认图片。

文章配图

  • 图床:先上传到图床,获取 URL 后插入文章内容

构建 Chroma CSS

pnpm build:chroma

等同于:

hugo gen chromastyles --style=github | sed 's/\./html:not(.dark) ./' >> assets/css/chroma.css
hugo gen chromastyles --style=github-dark | sed 's/\./html.dark ./' >> assets/css/chroma.css

License

This project is licensed under GLWTPL
Hugo is licensed under Apache License 2.0
Theme Pehe is licensed under MIT

FOSSA Status

GLWT(Good Luck With That,祝你好运)公共许可证
            版权所有© 除作者外的所有人

任何人都被允许复制、分发、修改、合并、销售、出版、再授权
或任何其它行为,但风险自负。

作者对这个项目中的代码的行为一无所知。
代码处于可用或不可用状态,没有第三种可能

                祝你好运公共许可证
            复制、分发和修改的条款和条件

  0. 只要你永远不要留下任何可以追踪到原作者的线索,
你就可以随心所欲地做任何事,因此,不能因此责怪或追究
原作者的责任。

在任何情况下,作者均不对因使用或与本软件有关的合同诉讼、
侵权或其他方式产生的任何索赔、损害或其他责任负责。

自求多福吧。