本文详细介绍了 CS 自学指南网站的主题配置和用户界面元素。它重点关注 Material for MkDocs 主题的定制、配色方案、排版设置以及评论系统等交互组件。有关构建过程和依赖项的信息,请参阅构建过程和依赖项。
CS 自学指南使用 Material for MkDocs 主题,提供了一个现代、响应式界面,具有暗模式、搜索功能和代码高亮等高级功能。该主题经过定制,以在整个知识库中创建一致、用户友好的体验。
图表:主题组件关系
CS 自学指南中的主题配置在 mkdocs.yml 文件中定义,包含几个关键组件
该网站配置以中文为默认语言,并通过 i18n 插件单独构建英文版本。
theme:
name: material
language: zh
static_templates:
- 404.html
favicon: images/favicon.ico
apple-touch-icon-precomposed: images/mobile_icon.png
Material 主题提供了许多在 CS 自学指南中启用的 UI 功能
| 功能 | 目的 |
|---|---|
header.autohide | 向下滚动时隐藏页眉 |
navigation.tracking | 根据滚动位置更新导航 |
navigation.top | 添加“返回顶部”按钮 |
search.highlight | 在搜索结果中高亮搜索词 |
search.share | 允许分享搜索结果 |
search.suggest | 显示搜索建议 |
content.code.annotate | 启用代码注释 |
该网站实现了响应式配色方案,可根据用户偏好调整,提供亮模式和暗模式选项
图表:主题配色方案系统
该网站为文本和代码内容使用了精心选择的字体
该网站通过指定自定义目录进行覆盖,扩展了 Material 主题
theme:
custom_dir: overrides
这允许网站使用自定义实现(例如评论系统)定制默认 Material 主题模板。
来源:mkdocs.yml53
该网站使用了几个 Markdown 扩展,以增强用户界面和内容呈现
| 扩展 | 目的 |
|---|---|
attr_list | 允许向 Markdown 元素添加 HTML 属性 |
md_in_html | 在 HTML 块内启用 Markdown 语法 |
footnotes | 添加对脚注的支持 |
CS 自学指南使用 Giscus 实现了评论系统,该系统利用 GitHub Discussions 为每个页面提供协作评论体验。
图表:Giscus 评论系统流程
来源:overrides/partials/comments.html1-52
Giscus 评论系统通过以下关键参数实现
当用户在亮模式和暗模式之间切换时,评论系统的主题通过 JavaScript 自动同步。
来源:overrides/partials/comments.html2-16
一个 JavaScript 事件监听器监控网站调色板的变化并相应地更新 Giscus 主题
// Set palette on initial load
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "dark_protanopia"
: "light_protanopia"
// Instruct Giscus to set theme
giscus.setAttribute("data-theme", theme)
}
系统对亮主题使用“light_protanopia”,对暗主题使用“dark_protanopia”,确保色觉缺陷用户的可访问性。
来源:overrides/partials/comments.html19-51
尽管 i18n 系统在国际化系统中有所介绍,但用户界面包含特定语言的元素
来源:mkdocs.yml14 mkdocs.yml118-121 mkdocs.yml60-117
Material 主题提供了内置的响应式设计元素,可适应不同的屏幕尺寸和设备。CS 自学指南通过其主题配置保持了这种响应性,确保在桌面和移动设备上提供一致的体验。