PrevNext

所有模块都使用 MDX(Markdown + JSX)编写,并由 @mdx-js/mdx 编译。 指南通过 KaTeX 支持 LaTeX\LaTeX,并使用了一些自定义 MDX 组件。如有疑问或希望添加功能,请联系 Nathan Wang。

快速开始

USACO Guide 拥有公开的 GitHub 仓库

  • 添加或修改模块,请查看 content/ 目录。
  • 添加或修改题解,请查看 solutions/ 目录。
  • 图片、视频等静态文件位于 public/,因为 Next.js 只能从该目录提供静态文件。
    • content/solutions/ 中请使用绝对路径引用。
  • 几乎所有其他文件和目录都与前端代码有关。

如有贡献方面的问题,可以提交 IssuePull Request,团队成员会提供 帮助。也可以加入 Discord 服务器

Join us on Discord

使用编辑器(推荐)

编辑内容最简单的方式是使用在线编辑器

在本地运行网站

也可以在本地运行网站以预览修改。需要使用 /editor 不支持的 Tailwind CSS 类时,这种方式尤其有用。

  1. 配置开发环境。
    • 安装 Node.js
      • npm install -g yarn
  2. 克隆仓库。
    • 使用命令行: git clone https://github.com/cpinitiative/usaco-guide.git
    • 或使用 GitHub Desktop
  3. 安装依赖:
    • yarn install
  4. 启动开发服务器:
    • yarn dev
    • 编辑内容时请改用 yarn dev:watch。普通的 yarn dev 使用内容缓存,修改 后必须重启才能显示。

更多信息参见前端文档

Next.js 要求 Node.js 20.9 或更高版本,建议使用仍处于活跃或维护阶段的 长期支持版本

贡献方式

例如:

课程内容

  • 将资源列表转换为表格(铂金组/进阶)。
  • 补充章节、模块或资源缺失的说明;所有资源都应有说明。
  • 改进样例题讲解;若星标资源或官方题解已经讲得很好,则无需重复。
  • 改进代码实现:确保能够编译、移除过多宏、为模板添加代码片段标记,并保持 不同语言之间的一致性。
  • 添加新模块。
  • 若为模块增加大量正文,请把名字加入 frontmatter 的作者列表。
  • 若新增或显著改进代码实现,或补充简短说明,请把名字加入贡献者列表。

题目

  • 将题目列表转换为表格(铂金组/进阶)。
  • 修正题目难度和标签。
  • 添加能很好体现模块主题的题目,并移除不合适的题目。
  • 添加官方题解链接。
  • 在没有题解或现有题解可改进时添加题解,也可补充其他语言的解题代码。

Markdown 资源

Markdown 编辑器:

  • 推荐使用我们的在线编辑器
  • Sublime Text
    • .md 的语法高亮也适用于 .mdx
    • 打开 .mdx 文件后,可以通过 View -> Syntax -> Open all with current extension as ... -> Markdown -> Markdown.
  • StackEdit
    • 自动编译 LaTeX\LaTeX,无需安装。
  • Obsidian
    • 自动编译 LaTeX\LaTeX,无需安装。

Module Progress:

PrevNext