更新记录

2026-11-01(第四次)· 全部 35 章重写,改成「讲完就练」

这一版把 10 个课程页面全部重写了,之前那种「一章一大段讲解 + 末尾堆一张题单」的结构彻底废弃。

结构变了

之前的问题是:学生读完三页讲解,看到末尾一张 30 题的表格,不知道哪道题对应哪段知识,只能从头往后硬做。

现在每一章拆成若干小节,每小节讲一个知识点,紧跟一个蓝色「动手」框,框里正好是能练习这个知识点的题。读完就做,做完再往下读。

一章结束时有一个绿色「验收」框,写明「学完这章你应该能做到什么」,做不到就回头补,别往前推。

全站 192 个提示框,分四类:

类型 数量 用途
动手(蓝) 126 讲完知识点立刻做的题
验收(绿) 35 一章结束时自检
陷阱(红) 25 实际会踩的坑,附具体错误现象
补充(灰) 6 背景说明,不影响主线

全站改用 scanf / printf

之前用 cin/cout,现在统一改成 scanf/printf 并说明了三个理由(速度快、格式控制精确、输出量大时差距明显)。

顺带把三个初学者一定会踩的坑写进了正文:

  • scanf 漏写 &(运行时崩溃,不报编译错)
  • 格式串里写 \n 导致程序卡住等输入
  • double 读用 %lf、写用 %f(不对称)

讲解密度做了梯度

前两章(输出、算术)拆得最细——#include 为什么这么写、printf 的占位符怎么数、7/2 为什么不是 3.5,全都展开。判断和循环开始收敛到「要点 + 坑」,数组之后基本只说关键处。

这是刻意的:零基础阶段怕的不是难,是「看着懂了其实没懂」。后面章节留给学生自己推,前提是前面真的练熟了。

校验

254 道题全部挂回讲义,用脚本校验:全覆盖、无重复、无错页。题目链接从 OJ 的作业结构自动生成,不是手抄的。

2026-11-01(第三次)

接上 OI-Wiki

服务器上本来就有一套 OI-Wiki(621 页),之前跟讲义是两张皮。现在接起来了:

  • 每章末尾加了延伸阅读,直接链到 wiki 的对应页
  • 每条链接都标了阅读时机:「可以先看」/「学完本章再看」/「现在跳过」
  • 新增 查 OI-Wiki 的正确姿势,讲清楚哪些该看、哪些是竞赛内容

为什么要标时机:OI-Wiki 是给竞赛选手写的参考手册,默认读者会写程序。直接甩链接过去,学生点开看到红黑树和莫比乌斯反演,只会认为自己笨。标上「现在跳过」,他们才知道那不是自己的问题。

视觉层对齐 hydro-ui

字体、色板、字号阶梯全部改成 hydro-ui 那一套(/home/lighthouse/hydro-ui/设计系统.md):

层面 取值
西文 Fira Sans(自托管)
中文正文 HarmonyOS Sans SC(164 个 unicode-range 分片,带 size-adjust: 104% 字面率补偿)
标题 汉仪文黑 85W(4 片)
代码 JetBrains Mono
根字号 20px(等效 CTRL++ 125%)
正文行宽 42em = 840px
正文色 #1d1d1f
品牌色 #0071e3,hover #0077ed
页面底色 #fbfbfd
标题字重 400(层级靠字号拉开,不靠加粗)

字体文件不复制,Caddy 里用 handle 把 /fonts* 路由到 hydro-ui/public——那边换字体,这边自动跟着变。

前端修掉的问题

  • html { font-size: 62.5% } 让根字号变成 10px,所有 rem 全部偏小;<html> 上也没有 class="book",得挂 :root
  • fontsettings 插件的 .book.font-size-2 ... section { font-size: 1.6rem } 特异性 (0,4,1),把正文顶到 32px——四档字号全部重映射
  • intopic-toc 把 .page-inner 压到 60%、目录占 20%,正文只剩 660px——改成「正文自适应 + 目录固定 190px」
  • 翻页箭头 .navigation 是 .book-body 的直接子元素(不在 .page-wrapper 里),90px 宽压住正文左边 77px——去掉
  • 窄屏下 .page-inner 作为 flex item 被宽代码块撑到 589px(视口 390),min-width: 0 也拦不住——退回 block 布局
  • 表格的斑马纹是 tr:nth-child(2n) 带来的,取色器写 tr 覆盖不掉
  • 页内目录把提示框的 h3.panel-title 也收了进去——selector 改用子选择器 .markdown-section > h2, > h3

2026-11-01(第二次)

改造成《cpp基础语法》配套讲义

原来是一份通用的平台使用文档,现在改成 OJ 作业《cpp基础语法》的配套讲义。

  • 章节结构与 OJ 作业完全对齐:8 大板块、35 章
  • 每章末尾挂上该章的题目清单,254 道题全部带链接,直接点进 OJ
  • 题目清单由 gen_course.py 从 OJ 的作业结构(hw.json)+ 题目名(titles.json)自动生成,不手抄

写作思路

前期详细、后期放手。

  • 第 1–7 章(基础、计算):每个符号都解释,每行代码都说清楚为什么。零基础阶段最怕"看起来懂了其实没懂"。
  • 第 8 章以后:只讲要点和坑,剩下留给自己推。
  • 每章都有"容易错的地方",用提示框标出来,这些是高频失分点。

结构

分节 内容
开始 前言、怎么用这份讲义、注册与提交
课程 10 个页面,覆盖 35 章
参考 本地调试、FAQ、出题、写作语法

前端

沿用 NJU ICS-PA 的插件组合:

插件 作用
theme-comscore 整体配色
intopic-toc 侧栏页内导航(nested 模式)
localized-footer 页脚本地化
page-footer-ex 页脚版权与修订时间
callouts 提示框,隐藏类型名只留图标
katex 数学公式

踩过的坑

  • callouts 不是 hints 插件那一套写法,是带 h4 的引用块
  • katex 的行内公式要用两对美元符号,一对不渲染
  • katex 按 $$ 做全文替换,不认代码块——代码块里示范公式写法会被渲染成乱码
  • 正文里出现模板标签(大括号加百分号)会被当语法解析,直接构建失败
  • intopic-toc 的 mode 只有 flat / nested,写 onpage 会被静默忽略
  • 任务列表 - [ ] 和 [TOC] 都不支持

待办

  • [ ] 补每章的"常见错解"示例(把学生的真实错误代码放进去)
  • [ ] 给进阶章节加二维码,扫了直接跳到对应题目
  • [ ] 比赛规则与判罚标准
© HiJudge · 内容采用 CC BY-NC-SA 4.0 许可协议            此页面修订于: 2026-11-01 03:44:09

results matching ""

    No results matching ""