仓库文件说明

仓库文件说明

这个仓库是一个基于 Academic Pages 的 Jekyll 静态网站。Jekyll 会读取 _config.yml_data/_pages/、各个 collection 目录和模板文件,构建成最终发布到 GitHub Pages 的静态 HTML/CSS/JS。

说明:仓库里包含不少第三方样式库、字体、示例图片和生成文件。下面会尽量按文件说明;对于同一类第三方/vendor 文件,会按目录归并说明,避免把重复的库内部文件写成没有意义的长表。

根目录文件

文件作用
_config.ymlJekyll 主配置文件。控制站点标题、作者信息、导航行为、collections、插件、URL、主题等。
_config_docker.ymlDocker 本地运行时追加的配置,目前内容很少,用于配合 docker-compose.yaml
.gitignoreGit 忽略规则,例如 _site/node_modules/Gemfile.lock.bundle/ 等。
GemfileRuby/Jekyll 依赖声明,GitHub Pages/Jekyll 构建会用到这里的 gems。
Dockerfile构建本地 Jekyll 开发容器的镜像定义。
docker-compose.yaml用 Docker Compose 启动 Jekyll 本地预览服务,默认映射到 localhost:4000
package.json前端 JS 构建脚本和 npm 依赖,主要用于压缩生成 assets/js/main.min.js
README.mdAcademic Pages 模板说明和本地运行说明。
LICENSE项目许可证。
talkmap.py根据 _talks/ 中的地点生成 talk 地图数据和 HTML。
talkmap.ipynbtalkmap.py 的 Notebook 版本。
talkmap_out.ipynb执行 talkmap.ipynb 后生成的输出 Notebook。

GitHub 与开发环境

文件作用
.devcontainer/devcontainer.jsonVS Code Dev Container 配置,指定使用 Docker Compose 中的 jekyll-site 服务。
.github/CONTRIBUTING.md模板项目的贡献说明。
.github/PULL_REQUEST_TEMPLATE.mdPull Request 模板。
.github/ISSUE_TEMPLATE/bug_report.mdBug report issue 模板。
.github/ISSUE_TEMPLATE/feature_request.mdFeature request issue 模板。
.github/workflows/bad-pr.yml自动关闭不合规 PR 的模板工作流,继承自 Academic Pages。
.github/workflows/pages.yml当前站点的 GitHub Pages 部署工作流。push 到 master 后构建并部署 Jekyll 站点。
.github/workflows/scrape_talks.yml当 talks 相关文件变化时,运行 talkmap.py 重新生成 talk map。

_data/ 数据文件

文件作用
_data/authors.yml作者数据,模板可从这里读取作者 profile 信息。
_data/navigation.yml顶部导航菜单配置,例如 About、Publications、Talks 等入口。
_data/ui-text.yml多语言/界面文案配置,按钮、标签、提示语等来自这里。
_data/cv.jsonJSON 格式简历数据,供 CV 页面模板读取。
_data/comments/**示例评论数据,按文章 slug 分组,用于 Staticman/comments 示例。

_pages/ 独立页面

文件作用
_pages/about.md首页/个人简介页,通常是最常改的个人主页内容。
_pages/404.md404 页面。
_pages/archive-layout-with-content.md带内容区的归档布局示例页。
_pages/category-archive.html分类归档页。
_pages/collection-archive.htmlCollection 归档页。
_pages/cv.mdMarkdown/CV 页面入口。
_pages/cv-json.md使用 _data/cv.json 渲染的 CV 页面入口。
_pages/markdown.mdMarkdown 语法示例页。
_pages/non-menu-page.md不放进导航菜单的示例页面。
_pages/page-archive.html普通页面归档。
_pages/portfolio.htmlPortfolio 列表页。
_pages/publications.htmlPublications 列表页。
_pages/sitemap.md网站地图页面。
_pages/tag-archive.html标签归档页。
_pages/talkmap.htmlTalk 地图页面。
_pages/talks.htmlTalks 列表页。
_pages/teaching.htmlTeaching 列表页。
_pages/terms.mdTerms/条款页面。
_pages/year-archive.html按年份归档的文章列表页。

内容 collection

目录/文件作用
_posts/*.md博客文章。文件名格式通常是 YYYY-MM-DD-title.md
_posts/2199-01-01-future-post.md未来日期文章示例。
_publications/*.md论文/出版物条目,会被 Publications 页面汇总。
_portfolio/portfolio-1.mdPortfolio 示例条目。
_portfolio/portfolio-2.htmlHTML 格式的 Portfolio 示例条目。
_talks/*.mdTalk/演讲条目,会被 Talks 页面和 talkmap 使用。
_teaching/*.mdTeaching/课程条目,会被 Teaching 页面汇总。
_drafts/post-draft.md草稿文章,不会像正式 _posts 一样默认发布。

_layouts/ 页面布局模板

文件作用
_layouts/default.html基础页面布局,通常包含 head、header、footer、scripts。
_layouts/single.html单篇文章/单个 collection 条目的常用布局。
_layouts/archive.html归档列表布局。
_layouts/archive-taxonomy.html分类/标签归档布局。
_layouts/compress.htmlHTML 压缩布局包装器。
_layouts/cv-layout.htmlCV 页面专用布局。
_layouts/splash.htmlSplash/落地页式布局。
_layouts/talk.htmlTalk 条目专用布局。

_includes/ 可复用模板片段

文件/目录作用
_includes/head.htmlHTML <head> 区域的基础模板。
_includes/head/custom.html自定义 head 内容插入点。
_includes/footer.html页脚。
_includes/footer/custom.html自定义页脚内容插入点。
_includes/masthead.html顶部导航栏。
_includes/sidebar.html侧边栏。
_includes/author-profile.html作者头像、姓名、社交链接等侧边栏资料。
_includes/seo.htmlSEO/meta 标签模板。
_includes/scripts.html页面底部 JS 引入模板。
_includes/analytics.html分析统计入口,根据配置选择 provider。
_includes/analytics-providers/*.htmlGoogle/custom 等分析统计代码片段。
_includes/comments.html评论区入口。
_includes/comments-providers/*.htmlDisqus、Discourse、Facebook、Staticman 等评论 provider。
_includes/archive-single*.html归档列表中单个条目的渲染片段。
_includes/breadcrumbs.html面包屑导航。
_includes/browser-upgrade.html老浏览器升级提示。
_includes/category-list.html分类列表渲染。
_includes/tag-list.html标签列表渲染。
_includes/comment.html单条评论渲染。
_includes/cv-template.htmlJSON CV 的具体渲染模板。
_includes/page__hero.html页面 hero 区域。
_includes/page__taxonomy.html页面分类/标签 taxonomy 区域。
_includes/paginator.html分页控件。
_includes/post_pagination.html上一篇/下一篇文章导航。
_includes/read-time.html阅读时间计算展示。
_includes/social-share.html社交分享按钮。
_includes/base_path计算站点 base path 的 Liquid 片段。
_includes/feature_rowFeature row 组件。
_includes/gallery图片 gallery 组件。
_includes/group-by-arrayLiquid 数组分组工具。
_includes/nav_list导航列表组件。
_includes/toc目录/table of contents 组件。

_sass/ 样式源码

文件/目录作用
_sass/_syntax.scss代码高亮样式。
_sass/_themes.scss主题入口和主题变量组织。
_sass/include/_mixins.scssSass mixins。
_sass/include/_utilities.scss通用工具类。
_sass/layout/*.scss站点布局样式,例如导航、侧边栏、按钮、表格、页脚、页面主体等。
_sass/theme/*.scss不同主题的明暗色配置,例如 default、air、mint、sunrise、contrast、dirt。
_sass/vendor/breakpoint/**第三方 Breakpoint Sass 响应式断点库。
_sass/vendor/font-awesome/**Font Awesome Sass 源码和变量。
_sass/vendor/susy/**第三方 Susy grid/layout Sass 库。

assets/ 前端静态资源

文件/目录作用
assets/css/main.scssJekyll 编译主样式入口。
assets/css/fontawesome.scssFont Awesome 样式入口。
assets/css/academicons.cssAcademicons 图标字体样式。
assets/css/academicons.min.cssAcademicons 压缩版样式。
assets/js/_main.js站点主 JS 源文件。
assets/js/theme.js主题切换相关 JS。
assets/js/plugins/jquery.greedy-navigation.js导航栏自适应折叠插件。
assets/js/main.min.js压缩后的前端 JS,发布时实际使用。
assets/fonts/academicons.*Academicons 字体文件。
assets/webfonts/fa-*Font Awesome 字体文件。

images/ 图片资源

文件/目录作用
images/profile.png默认作者头像,_config.ymlauthor.avatar 指向它。
images/bio-photo.jpgimages/bio-photo-2.jpg示例个人照片。
images/favicon.*images/apple-touch-icon-180x180.pngimages/manifest.json网站图标和 PWA/浏览器图标配置。
images/500x300.png示例占位图。
images/editing-talk.pngREADME/文档中的示例截图。
images/themes/*.pngAcademic Pages 各主题预览图。
images/wiki/plotly_example.pngPlotly 示例图片。

files/ 可下载附件

文件作用
files/paper1.pdffiles/paper2.pdffiles/paper3.pdf示例论文 PDF。
files/slides1.pdffiles/slides2.pdffiles/slides3.pdf示例演示文稿 PDF。
files/bibtex1.bib示例 BibTeX 引用文件。

markdown_generator/ 内容生成工具

文件作用
markdown_generator/README.md内容生成工具说明。
markdown_generator/publications.py从表格数据生成 publication markdown 的脚本。
markdown_generator/pubsFromBib.py从 BibTeX 生成 publication markdown 的脚本。
markdown_generator/talks.py从表格数据生成 talk markdown 的脚本。
markdown_generator/publications.csvpublication 示例 CSV 数据。
markdown_generator/publications.tsvpublication 示例 TSV 数据。
markdown_generator/talks.tsvtalks 示例 TSV 数据。
markdown_generator/publications.ipynbpublication 生成 Notebook。
markdown_generator/PubsFromBib.ipynbBibTeX 转 publication 的 Notebook。
markdown_generator/OrcidToBib.ipynb从 ORCID 获取/转换 BibTeX 的 Notebook。
markdown_generator/talks.ipynbtalks 生成 Notebook。

scripts/ 辅助脚本

文件作用
scripts/cv_markdown_to_json.py将 Markdown 简历内容转换为 JSON 数据。
scripts/update_cv_json.sh更新 _data/cv.json 的 shell 脚本。

talkmap/ 地图输出

文件/目录作用
talkmap/map.htmltalk 地图生成后的 HTML 页面。
talkmap/org-locations.jstalk 地点坐标数据。
talkmap/leaflet_dist/leaflet.markercluster.jsLeaflet marker cluster 插件。
talkmap/leaflet_dist/leaflet.markercluster-src.jsLeaflet marker cluster 源码版。
talkmap/leaflet_dist/MarkerCluster.cssmarker cluster 基础样式。
talkmap/leaflet_dist/MarkerCluster.Default.cssmarker cluster 默认主题样式。
talkmap/leaflet_dist/screen.csstalkmap 页面样式。

常见修改入口

想做的事改哪里
修改网站标题、作者、头像、社交链接_config.yml
修改顶部导航_data/navigation.yml
修改首页/个人简介_pages/about.md
添加博客文章_posts/
添加论文_publications/
添加项目展示_portfolio/
添加课程经历_teaching/
添加或删除 Talks_talks/_pages/talks.html_data/navigation.yml
修改页面整体布局_layouts/_includes/
修改样式_sass/assets/css/main.scss
修改部署流程.github/workflows/pages.yml
本地 Docker 预览Dockerfiledocker-compose.yaml.devcontainer/devcontainer.json