diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ee3acf6..cd0969d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,14 +1,10 @@ -# Default repository owners. -* @m1ngsama @Orangedog433 +# Repository owner — tooling, CI and governance files. +* @m1ngsama -# Documentation governance and review flow. -/CONTRIBUTING.md @m1ngsama @Orangedog433 -/CONTEXT.md @m1ngsama @Orangedog433 -/docs/adr/ @m1ngsama @Orangedog433 -/.github/ @m1ngsama @Orangedog433 - -# Active documentation areas. -/tutorial/ @m1ngsama @Yuna-Celisse -/process/ @m1ngsama @Yuna-Celisse -/repair/ @m1ngsama @Orangedog433 -/archived/ @m1ngsama @Yuna-Celisse +# Documentation content — reviewed by the president and the documents maintainers. +/about/ @Sheepkinn @Yuna-Celisse @wen-templari +/concepts/ @Sheepkinn @Yuna-Celisse @wen-templari +/tutorial/ @Sheepkinn @Yuna-Celisse @wen-templari +/process/ @Sheepkinn @Yuna-Celisse @wen-templari +/repair/ @Sheepkinn @Yuna-Celisse @wen-templari +/archived/ @Sheepkinn @Yuna-Celisse @wen-templari diff --git a/.vitepress/config.mts b/.vitepress/config.mts index b54e729..1ae2577 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -1,8 +1,7 @@ import { withMermaid } from 'vitepress-plugin-mermaid' +import { sidebar as sidebarAbout } from '../about/sidebar' import { sidebar as sidebarArchived } from '../archived/sidebar' -import { sidebar as sidebarProcess } from '../process/sidebar' -import { sidebar as sidebarRepair } from '../repair/sidebar' -import { sidebar as sidebarTutorial } from '../tutorial/sidebar' +import { sidebar as sidebarGuide } from '../tutorial/sidebar' // https://vitepress.dev/reference/site-config export default withMermaid({ @@ -15,18 +14,19 @@ export default withMermaid({ themeConfig: { // https://vitepress.dev/reference/default-theme-config nav: [ - { text: '教程', link: '/tutorial/' }, - { text: '流程', link: '/process/' }, - { text: '维修', link: '/repair/guide' }, - { text: '存档', link: '/archived' }, + { text: '关于', link: '/about/' }, + { text: '指南', link: '/tutorial/' }, + { text: '维修', link: '/repair/' }, ], search: { provider: 'local', }, sidebar: { - '/tutorial/': sidebarTutorial, - '/process/': sidebarProcess, - '/repair/': sidebarRepair, + '/about/': sidebarAbout, + // Guide = tutorial + process; one shared sidebar mounted on both paths. + '/tutorial/': sidebarGuide, + '/process/': sidebarGuide, + // repair and concepts use a hub + inline-link + search model; no full sidebar. '/archived': sidebarArchived, }, editLink: { @@ -46,7 +46,6 @@ export default withMermaid({ srcExclude: [ 'README.md', 'CONTRIBUTING.md', - 'CONTEXT.md', 'docs/**', ], lastUpdated: true, diff --git a/.vitepress/theme/ConceptPreview.vue b/.vitepress/theme/ConceptPreview.vue new file mode 100644 index 0000000..ad9adb2 --- /dev/null +++ b/.vitepress/theme/ConceptPreview.vue @@ -0,0 +1,166 @@ + + + diff --git a/.vitepress/theme/HubBackLink.vue b/.vitepress/theme/HubBackLink.vue new file mode 100644 index 0000000..1151bad --- /dev/null +++ b/.vitepress/theme/HubBackLink.vue @@ -0,0 +1,30 @@ + + + diff --git a/.vitepress/theme/Layout.vue b/.vitepress/theme/Layout.vue new file mode 100644 index 0000000..8d5ce6f --- /dev/null +++ b/.vitepress/theme/Layout.vue @@ -0,0 +1,18 @@ + + + diff --git a/.vitepress/theme/concepts.data.ts b/.vitepress/theme/concepts.data.ts new file mode 100644 index 0000000..ce0772f --- /dev/null +++ b/.vitepress/theme/concepts.data.ts @@ -0,0 +1,139 @@ +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +// Indexes every content page by URL path, title and first paragraph, for hover previews. +export interface PagePreview { + path: string + title: string + summary: string +} + +declare const data: PagePreview[] +export { data } + +const rootDir = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + '../..', +) +const contentDirs = ['about', 'process', 'repair', 'tutorial', 'concepts', 'archived'] + +function cleanInline(s: string): string { + return s + .replace(/!\[[^\]]*\]\([^)]*\)/g, '') + .replace(/\[([^\]]+)\]\([^)]*\)/g, '$1') + .replace(/`([^`]+)`/g, '$1') + .replace(/\*\*([^*]+)\*\*/g, '$1') + .replace(/\*([^*]+)\*/g, '$1') + .replace(/<[^>]+>/g, '') + .replace(/\s+/g, ' ') + .trim() +} + +function truncate(s: string, n: number): string { + return s.length > n ? `${s.slice(0, n).trimEnd()}…` : s +} + +function stripFrontmatter(src: string): string { + if (!src.startsWith('---')) + return src + const end = src.indexOf('\n---', 3) + if (end === -1) + return src + const after = src.indexOf('\n', end + 1) + return after === -1 ? '' : src.slice(after + 1) +} + +function extractTitle(src: string): string | undefined { + const m = stripFrontmatter(src).match(/^#[ \t]+(\S.*)$/m) + return m ? cleanInline(m[1]) : undefined +} + +// First prose paragraph, skipping headings, `:::` blocks, fenced code, tables, lists and quotes. +function extractSummary(src: string): string { + const lines = stripFrontmatter(src).split(/\r?\n/) + let inContainer = false + let inFence = false + let current: string[] = [] + let paragraph = '' + + for (const raw of lines) { + const line = raw.trim() + if (line.startsWith('```') || line.startsWith('~~~')) { + inFence = !inFence + continue + } + if (inFence) + continue + if (line.startsWith(':::')) { + inContainer = !inContainer + continue + } + if (inContainer) + continue + if (line === '') { + if (current.length) { + paragraph = current.join(' ') + break + } + continue + } + if (/^(?:[#>|]|[-*+]\s|\d+\.\s)/.test(line)) { + current = [] + continue + } + current.push(line) + } + if (!paragraph && current.length) + paragraph = current.join(' ') + + return truncate(cleanInline(paragraph), 140) +} + +function walk(dir: string): string[] { + let entries: fs.Dirent[] + try { + entries = fs.readdirSync(dir, { withFileTypes: true }) + } + catch { + return [] + } + const out: string[] = [] + for (const entry of entries) { + const full = path.join(dir, entry.name) + if (entry.isDirectory()) + out.push(...walk(full)) + else if (entry.name.endsWith('.md')) + out.push(full) + } + return out +} + +function toUrlPath(file: string): string { + const rel = path.relative(rootDir, file).replace(/\\/g, '/').replace(/\.md$/, '') + if (rel === 'index') + return '/' + if (rel.endsWith('/index')) + return `/${rel.slice(0, -'index'.length)}` + return `/${rel}` +} + +function loadPages(): PagePreview[] { + return contentDirs + .flatMap(dir => walk(path.join(rootDir, dir))) + .map((file) => { + const src = fs.readFileSync(file, 'utf-8') + const title = extractTitle(src) + if (!title) + return null + return { path: toUrlPath(file), title, summary: extractSummary(src) } + }) + .filter((x): x is PagePreview => x !== null) +} + +export default { + watch: contentDirs.map(dir => path.join(rootDir, dir, '**/*.md')), + load(): PagePreview[] { + return loadPages() + }, +} diff --git a/.vitepress/theme/index.mts b/.vitepress/theme/index.mts index 9672a74..50c4f60 100644 --- a/.vitepress/theme/index.mts +++ b/.vitepress/theme/index.mts @@ -1,5 +1,6 @@ import type { EnhanceAppContext, Theme } from 'vitepress' import DefaultTheme from 'vitepress/theme' +import Layout from './Layout.vue' import './style.css' let transitionTimer: number | undefined @@ -15,6 +16,7 @@ function clearTransition(content: HTMLElement) { export default { extends: DefaultTheme, + Layout, enhanceApp({ router }: EnhanceAppContext) { if (typeof window === 'undefined') return diff --git a/.vitepress/theme/style.css b/.vitepress/theme/style.css index 61218d8..a86c58d 100644 --- a/.vitepress/theme/style.css +++ b/.vitepress/theme/style.css @@ -54,3 +54,192 @@ height: 1rem; vertical-align: middle; } + +/* Narrow tables (e.g. leadership roster): no wrap; scroll instead of squishing on small screens. */ +.vp-doc .nb-people-table th, +.vp-doc .nb-people-table td { + white-space: nowrap; +} + +/* NBTCA visual identity. Brand blue #124689 from the logo; metadata/dates use a + monospace "machine voice" against prose. */ + +:root { + --vp-c-brand-1: #124689; + --vp-c-brand-2: #0f3a73; + --vp-c-brand-3: #17529c; + --vp-c-brand-soft: rgba(18, 70, 137, 0.1); + + --nb-mono: var(--vp-font-family-mono); +} + +.dark { + --vp-c-brand-1: #7db0ec; + --vp-c-brand-2: #9cc4f2; + --vp-c-brand-3: #2f6bbd; + --vp-c-brand-soft: rgba(125, 176, 236, 0.16); +} + +/* Home hero — monospace tagline. */ +.VPHero .name { + letter-spacing: -0.02em; +} + +.VPHero .tagline { + font-family: var(--nb-mono); + font-size: 15px; + line-height: 1.6; + letter-spacing: 0.005em; + color: var(--vp-c-text-2); +} + +/* Home composition — centre the hero in the content area; spacing/split follow φ. */ +@media (min-width: 960px) { + .VPContent.is-home { + display: flex; + min-height: calc(100vh - var(--vp-nav-height)); + align-items: center; + } + + .VPContent.is-home .VPHome { + width: 100%; + } + + .VPContent.is-home .VPHero { + padding-top: 0; + padding-bottom: 8vh; + } + + .VPContent.is-home .VPHero .container { + align-items: center; + } + + /* text : emblem ≈ φ */ + .VPContent.is-home .VPHero .main { + flex-grow: 1.618; + } + + .VPContent.is-home .VPHero .image { + flex-grow: 1; + } + + /* gaps step by φ: 13 → 21 → 34 */ + .VPContent.is-home .VPHero .tagline { + margin-top: 21px; + } + + .VPContent.is-home .VPHero .actions { + margin-top: 34px; + } +} + +/* Callouts — calmer surfaces, monospace kicker titles. */ +.vp-doc .custom-block { + border-radius: 8px; +} + +.vp-doc .custom-block-title { + font-family: var(--nb-mono); + font-size: 12px; + font-weight: 600; + letter-spacing: 0.04em; +} + +/* Maintainer-info blocks read as a small monospace stamp. */ +.vp-doc .custom-block.info table { + margin: 0; + font-family: var(--nb-mono); + font-size: 13px; +} + +.vp-doc .custom-block.info table th { + font-weight: 600; + color: var(--vp-c-text-2); +} + +/* Internal links: dotted, hover-previewable. */ +.vp-doc a:not([href^='http']):not([href^='#']):not([href^='mailto']):not(.header-anchor) { + text-decoration-line: underline; + text-decoration-style: dotted; + text-decoration-thickness: 1px; + text-underline-offset: 3px; +} + +/* External links: trailing ↗. */ +.vp-doc a[target='_blank']::after { + content: '↗'; + display: inline-block; + margin-left: 1px; + font-size: 0.72em; + font-weight: 400; + line-height: 0; + vertical-align: baseline; + color: var(--vp-c-text-3); +} + +/* "Back to hub" anchor for sidebar-less sections. */ +.nb-hub-back { + display: inline-block; + margin-bottom: 18px; + font-family: var(--nb-mono); + font-size: 13px; + color: var(--vp-c-text-2); + text-decoration: none; +} + +.nb-hub-back:hover { + color: var(--vp-c-brand-1); +} + +/* Hover preview card. */ +.nb-concept-card { + position: fixed; + z-index: 60; + width: 320px; + max-width: calc(100vw - 24px); + padding: 14px 16px 15px; + background: var(--vp-c-bg); + border: 1px solid var(--vp-c-divider); + border-radius: 10px; + box-shadow: + 0 12px 32px rgba(0, 0, 0, 0.12), + 0 2px 6px rgba(0, 0, 0, 0.06); +} + +.nb-concept-card.is-above { + transform: translateY(-100%); +} + +.nb-cp-kicker { + margin-bottom: 5px; + font-family: var(--nb-mono); + font-size: 11px; + font-weight: 600; + letter-spacing: 0.08em; + color: var(--vp-c-brand-1); +} + +.nb-cp-title { + margin-bottom: 6px; + font-size: 15px; + font-weight: 700; + line-height: 1.3; + color: var(--vp-c-text-1); +} + +.nb-cp-summary { + margin: 0; + font-size: 13px; + line-height: 1.62; + color: var(--vp-c-text-2); +} + +.nb-cp-enter-active, +.nb-cp-leave-active { + transition: opacity 0.14s ease; +} + +.nb-cp-enter-from, +.nb-cp-leave-to { + opacity: 0; +} diff --git a/CONTEXT.md b/CONTEXT.md deleted file mode 100644 index b0fa6b6..0000000 --- a/CONTEXT.md +++ /dev/null @@ -1,65 +0,0 @@ -# Project Context - -本文件记录 `nbtca/documents` 的域语言和维护边界,帮助贡献者在提交文档、导航和治理规则时使用一致的概念。 - -## 项目定位 - -`documents` 是计算机协会的文档站点,使用 VitePress 构建,面向协会成员、维修队成员、活动组织者和需要查阅公开资料的读者。 - -站点内容以 Markdown 为主要源文件,VitePress 配置、sidebar 模块和 CI 共同组成文档发布的治理边界。 - -## 栏目语言 - -### 教程 - -教程是面向学习的说明文档,回答“如何完成某件技术或协作任务”。典型内容包括工具使用、服务接入、GitHub 工作流、教育邮箱、C 盘清理等。 - -教程目录位于 `tutorial/`。按年份组织的活跃教程位于 `tutorial//`,对应导航由 `tutorial/sidebar.ts` 维护。 - -### 流程 - -流程是面向协会事务办理的操作规范,回答“协会内部事务该按什么步骤处理”。典型内容包括借教室、申请第二课堂学分、报销、活动组织和博客发布。 - -流程目录位于 `process/`。按年份组织的活跃流程位于 `process//`,对应导航由 `process/sidebar.ts` 维护。 - -### 维修 - -维修是面向维修队、维修日和维修工单系统的操作文档,回答“如何处理设备维护和维修协作”。典型内容包括维修操作指南、工具索引、维修日检查单和工单系统说明。 - -维修目录位于 `repair/`。当前维修导航由 `repair/sidebar.ts` 维护。 - -### 存档 - -存档是历史材料的长期保存区,回答“过去发生过什么、有哪些旧资料仍值得保留”。典型内容包括会议纪要、年度计划、组织材料和旧版手册。 - -存档目录位于 `archived/`。年份目录用于历史记录,`archived/manual/` 用于长期手册。存档导航由 `archived/sidebar.ts` 自动扫描生成。 - -### 资产模板 - -资产模板是文档流程中可下载或可引用的附件,例如图片、表格、申请文件模板和活动材料。资产应靠近使用它的栏目存放,并通过文档说明用途和更新时间。 - -## 治理边界 - -### 导航 - -导航决定读者如何发现页面。当前项目同时存在手写 sidebar 和自动扫描 sidebar。治理目标是让每个栏目有清晰的导航入口,并让新增页面时需要修改的位置可预测。 - -### 内容契约 - -内容契约描述文档最低可维护标准:标题清晰、路径稳定、维护信息可追踪、链接有效、资产来源明确。不同栏目可以有不同严格度;活跃教程、流程和维修文档应比历史存档更严格。 - -### CI contract - -CI contract 是合并前的质量门。它应覆盖 lint、测试和 VitePress 构建,确保文档格式、导航逻辑和站点构建不会被 PR 破坏。 - -### ADR - -ADR 是架构决策记录,用于保存已经接受的治理方向、取舍和后续影响。ADR 不替代 issue 或 PR 讨论;它只记录已经决定或正在执行的长期约束。 - -## 维护原则 - -- 公开页面必须有稳定入口,避免孤岛页面。 -- 活跃文档优先保持清晰和可验证,存档文档优先保持历史原貌。 -- 附件和模板优先集中管理,减少重复副本。 -- 大范围治理变化应拆成小 PR,并通过 ADR 记录长期决策。 -- 不同栏目的实现可以不同,但对贡献者暴露的规则应尽量一致。 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a31e995..b922931 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,81 +1,34 @@ # Contributing -本仓库保存计算机协会的公开文档站点。提交内容时,请优先保持文档可读、路径稳定、导航可发现,并让 CI 能验证变更。 +计算机协会的公开文档站点。目标很简单:文档可读、链接不断、页面能被找到。写作与事实核查的标准见 [docs/editorial-standard.md](docs/editorial-standard.md)。 -## 本地准备 +## 本地运行 -1. 安装 Node.js 22。 -2. 安装 pnpm 9。 -3. 安装依赖: +需要 Node.js 22 与 pnpm 9。 - ```bash - pnpm install - ``` - -4. 启动本地预览: - - ```bash - pnpm docs:dev - ``` - -## 文档放置规则 - -### 教程 - -教程面向读者学习某个工具、服务或工作流。新增教程放在 `tutorial//` 下,文件名优先使用小写英文短横线,例如 `tutorial/2025/example-guide.md`。 - -新增或调整公开教程后,同步更新 `tutorial/sidebar.ts`,让页面能从站点导航进入。教程需要有清晰的一级标题,并在适合时保留“维护信息”块。 - -### 流程 - -流程面向协会内部事务办理,例如借教室、报销、活动组织。新增流程放在 `process//` 下。 - -新增或调整公开流程后,同步更新 `process/sidebar.ts`。流程文档应写清适用场景、前置材料、步骤、提交对象和常见问题。 - -### 维修 - -维修文档面向维修队和维修日场景。常驻维修说明放在 `repair/` 下,相关图片或附件放在 `repair/assets/` 下。 - -当前维修栏目导航在 `repair/sidebar.ts` 中维护;新增公开维修页面时,需要同步更新对应 sidebar 配置。 - -### 存档 - -存档保存历史会议纪要、年度材料和旧手册。按年份归档的内容放在 `archived//` 下,长期手册放在 `archived/manual/` 下。 - -存档 sidebar 会扫描 Markdown 文件并使用第一个一级标题作为显示名。新增存档页面通常不需要手工改导航;如果新增了具有特殊含义的子目录,需要确认 `archived/sidebar.ts` 是否需要显示名映射。 - -## 资产与附件 - -图片、表格、模板和压缩包应放在对应栏目的 `assets/` 目录下,并使用相对路径引用。模板类资产需要在文档中说明用途、适用流程和更新时间。 - -如果新增资产与已有文件用途相同,优先替换或复用已有文件,不要新增重复副本。确实需要保留多个版本时,请在文件名或说明中标明版本差异。 - -## 导航与链接 +```bash +pnpm install +pnpm docs:dev +``` -新增公开页面必须能从对应栏目导航进入,除非它只是被其他页面引用的附件说明或临时草稿。内部链接优先使用站内相对路径或以 `/` 开头的站内路径。 +## 内容放哪 -重命名或移动页面时,请同步更新所有引用、sidebar 和相关说明。避免随意改变已经公开使用的 URL。 +- **指南**(`tutorial/` 与 `process/`):教程与社务流程,共用一份边栏。新增页面后更新 `tutorial/sidebar.ts`。 +- **维修 / 概念库 / 关于**(`repair/`、`concepts/`、`about/`):枢纽模型,不挂边栏——从对应栏目的首页链接过去即可,其余靠站内词条链接与搜索抵达。 +- **存档**(`archived/`):历史材料,边栏自动扫描,通常无需改导航。保持历史原貌。 -## 提交前验证 +站内链接用以 `/` 开头的站内路径;移动或重命名页面时同步更新所有引用,别改已公开的 URL。 -提交 PR 前至少运行: +## 提交前 ```bash pnpm run ci:lint -pnpm test -- --run +pnpm test run pnpm docs:build ``` -如果只改了非站点说明文件,也建议运行 `pnpm run ci:lint` 和 `pnpm docs:build`,确认构建环境仍然健康。 - -## PR 要求 - -PR 描述需要说明: +提交信息用英文,遵循 Conventional Commits(`feat:` / `fix:` / `docs:` / `refactor:` 等)。源码注释用英文。 -- 这次修改影响哪些栏目或文档。 -- 是否新增、移动、删除页面。 -- 是否更新了 sidebar、链接或资产引用。 -- 已运行哪些验证命令。 -- 还有哪些已知后续工作没有包含在本 PR 中。 +## PR -PR 应保持范围集中。内容更新、导航重构、CI 规则和资产治理尽量拆成独立 PR,方便审阅和回滚。 +一个 PR 只做一件事——内容、导航、CI、资产尽量分开,便于审阅与回滚。PR 描述说明改了哪些栏目、是否动了导航或链接、跑过哪些验证。仓库有 PR 模板,按它填即可。 diff --git a/about/index.md b/about/index.md new file mode 100644 index 0000000..67f93a4 --- /dev/null +++ b/about/index.md @@ -0,0 +1,14 @@ +# 认识 NBTCA + +刚认识这个社区?这一栏带你快速看懂:我们是谁、怎么加入、怎么运转,以及线上开源的那一面。 + +## 从这里开始 + +- [什么是 NBTCA](./what-is-nbtca) — 我们是谁、相信什么、做什么,以及怎么找到我们。 +- [加入我们](./join) — 本校学生怎么加入、想参与开源怎么上手,以及怎么找到我们。 +- [组织与沿革](./organization) — 四部门、历届领导,以及组织如何一路演变。 +- [基础设施与项目](./infrastructure) — 开源社区那一面:自建服务与几十个公开仓库。 + +需要查某个名词?站内所有词条汇总在[概念库](/concepts/);不过多数时候,你在阅读中遇到带链接的词,把鼠标停一下就能看到释义。 + +想看协会的历史——会议纪要、往届计划、预算公示——见[存档](/archived/index)。 diff --git a/about/infrastructure.md b/about/infrastructure.md new file mode 100644 index 0000000..b1df98d --- /dev/null +++ b/about/infrastructure.md @@ -0,0 +1,48 @@ +# 基础设施与项目 + +NBTCA 的线上那一面,是一个持续运转的开源社区:几台自建服务器、一批跑在 Cloudflare 上的无服务函数,和几十个公开在 [github.com/nbtca](https://github.com/nbtca) 上的项目,共同支撑着维修、活动、宣传和日常协作。这一页做一个概览——想深入某个项目,点进它的仓库即可。 + +## 维修系统(weekend 项目) + +NBTCA 最核心的自建系统,支撑[维修日](/repair/repair-day)和日常报修: + +- [Saturday](https://github.com/nbtca/Saturday)(Go)——报修服务的后端 API(repair.nbtca.space)。 +- [Sunday](https://github.com/nbtca/Sunday)(Vue)——维修事件管理网站。 +- **Hawaii**(微信小程序「NBT电脑维修」,内部仓库)——用于发起报修。 + +系统怎么运转(工单状态流转、`@nbtca-bot` 命令、志愿者时长统计),见[工单系统](/repair/weekend)。 + +## 自建基础设施 + +- **校园网认证**:[nbtverify](https://github.com/nbtca/nbtverify)(Go)与 [luci-app-nbtverify](https://github.com/nbtca/luci-app-nbtverify)——对接学校的卓智网络接入门户,也适配 OpenWrt 路由器。 +- **文件与镜像站**:内网镜像站 i.nbtca.space(维修工具、系统镜像等,见[软件仓库索引](/repair/tools))。 +- **无服务后端**:不少服务跑在 Cloudflare Workers 上,例如 [ServerlessMQ](https://github.com/nbtca/ServerlessMQ)(消息队列 / webhook 转 websocket)、[shortlink](https://github.com/nbtca/shortlink)(短链接)、[uptimeflare](https://github.com/nbtca/uptimeflare)(可用性监控)。 +- **虚拟组网**:基于 Headscale 自建的 Tailscale 网络,见 [Tailscale 使用指南](/tutorial/2025/tailscale-usage)。 +- **编排与基础设施即代码**:用 Terraform 和 Docker 管理部署。 +- **消息中转**:[notification-center](https://github.com/nbtca/notification-center)(Go)把各类 webhook 汇聚成统一消息中心。 + +## 机器人与自动化 + +- [HuaJiBot.NET](https://github.com/nbtca/HuaJiBot.NET)(C#)——当前的群机器人;前身是已归档的 [huaji-bot](https://github.com/nbtca/huaji-bot)(Go)。 + +## 网站与内容 + +- [Home](https://github.com/nbtca/Home)(Astro)——协会主页 nbtca.space。 +- [blogs](https://github.com/nbtca/blogs)(Vue)——计协博客;投稿见[撰写并发布你的第一篇 NBTCA 博客](/process/2025/nbtca-post)。 +- [documents](https://github.com/nbtca/documents)(本站)、[docs](https://github.com/nbtca/docs) 数据库与 [nbtcal](https://github.com/nbtca/nbtcal) 日历。 + +## 开发上手 + +新加入开发的成员,可以从 [dev101](https://github.com/nbtca/dev101) 起步("First day at NBTCA dev team")。协作方式见 [GitHub 工作流](/tutorial/2025/github-workflow) 与 [Roadmap](/concepts/roadmap)。 + +## 更多 + +以上只是概览。NBTCA 还维护 Minecraft 服务器、聊天室项目(pit 系列)、照片整理、DNS 同步等——完整清单见 [github.com/nbtca](https://github.com/nbtca)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/about/join.md b/about/join.md new file mode 100644 index 0000000..6743295 --- /dev/null +++ b/about/join.md @@ -0,0 +1,33 @@ +# 加入我们 + +NBTCA 欢迎任何对计算机有兴趣的人——不论你是本校学生想加入社团,还是被我们的项目和理念吸引来的校外朋友。加入没有太高门槛,最重要的第一步,只是**来**。 + +## 如果你是本校学生 + +- **招新**:每年秋季开学的[百团大战](/concepts/club-fair)是主要的招新窗口,前后也会办[迎新会](/concepts/welcome-party)。〔待核实:当届的报名方式与是否有招新考核,以当届组织部通知为准。〕 +- **平时也能来**:[维修日](/repair/repair-day)、[CA101](/concepts/ca101) / [CA102](/concepts/ca102) 讲座、每周学习会都对全校开放。先来参加、认识大家,是了解这个社区最自然的方式——很多人就是先来玩,然后留了下来。 + +## 如果你想参与开源 + +NBTCA 的[项目与基础设施](/about/infrastructure)都公开在 [GitHub](https://github.com/nbtca) 上,任何人都能参与: + +- 从 [dev101](https://github.com/nbtca/dev101) 了解开发上手; +- 按 [GitHub 工作流](/tutorial/2025/github-workflow)参与代码或文档; +- 或者[写一篇 NBTCA 博客](/process/2025/nbtca-post)投稿。 + +## 怎么找到我们 + +- **QQ 群**:906370401 +- **协会主页**:[nbtca.space](https://nbtca.space) +- **电脑维修小程序**:微信搜索「NBT电脑维修」 +- **代码与文档**:[github.com/nbtca](https://github.com/nbtca) + +不论你从哪一面进来,结论都一样——**你就是 NBTCA 的一员**。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/about/organization.md b/about/organization.md new file mode 100644 index 0000000..43f193d --- /dev/null +++ b/about/organization.md @@ -0,0 +1,46 @@ +# 组织与沿革 + +NBTCA 的组织结构不是一成不变的——从 2001 年创立至今,每一代都在按当时的人和事调整管理方式。这一页记录这条演变,以及当届的组织;具体某届谁负责什么,属于会随届更替的信息,因此单独成表、单独归档。 + +## 沿革 + +- **2001**:由初代社长叶敏辉创立,是浙大宁波理工学院最早的学生社团之一。 +- **早期(约 2013,许益灵会长)**:奉行「每次活动都要以人才培养——人不带起来协会便死——和内部成员自我提升为基础」。 +- **2017–2018(朱柯权会长)**:设系统、软件、硬件、综合、宣策五个部门,外加会长直辖、「先培训后加入」的维修队;招生约 85 人,主要痛点是成员参与度不足。 +- **2018 组织架构改革**:把系统 / 软件 / 硬件三部合并为**开发部**,宣策部升级为**宣传部**,新设**组织部**(监督、沟通、策划、会长热线),维修队保留。**这是现行「开发·维修·宣传·组织」四部门的起点。** 同期因信息学院与数据学院分立,协会归数据学院管辖,定位「立足数据、面向全校」。 +- **2019 之后**:自我描述为「半学习半公益」的社团,重点在提升硬实力与服务大众([维修日](/repair/repair-day)的前身[理工服务日](/concepts/service-day))。 +- **2023–2026**:会长依次为张明俊(23 届)、李义杨(24 届)、陈正浩(25 届)、杨裕豪(26 届)。这几届持续办 [CA101](/concepts/ca101) / [CA102](/concepts/ca102) 讲座(如 24 届的「电脑从入门到入土」)、维修日与迎新、[百团大战](/concepts/club-fair)招新,并把每周学习会向「团建 + 不定期学习分享会 + 维修日 mini」改革,同时推进服务器与镜像站运维(见[基础设施与项目](/about/infrastructure))。 + +四部门的意义见[部门](/concepts/departments);「强则扁平、弱则托底」的协作逻辑见[集市与教堂](/concepts/bazaar-and-cathedral)。 + +## 历届领导 + +
+ +| 届 | 会长 | 副会长 | 开发 | 维修 | 宣传 | 组织 | +| -------- | ------ | -------------- | ----------- | ------------ | -------------- | -------------- | +| 18–19 届 | 蔡荥祺 | 索会恒 | 张明俊 | 沈浩博 | 苏丁丁 | 代佳丽 | +| 19 届后 | 张明俊 | 待补 | 王纯 | 文轩、余琦林 | 待补 | 待补 | +| 21 届后 | 王纯 | 文轩、余琦林 | 周立君 | 伍浩 | 待补 | 待补 | +| 23 届 | 张明俊 | 陈昱衡、周蔚荣 | 高鑫弘 | 戴上博 | 闪冰倩 | 陈晓晴 | +| 24 届 | 李义杨 | 待补 | 待补 | 待补 | 李香影、仲雯妃 | 待补 | +| 25 届 | 陈正浩 | 待补 | 待补 | 待补 | 待补 | 待补 | +| 26 届 | 杨裕豪 | Sheepkinn | Yunacelisse | ikari-rei | 待补 | Gracecreate486 | + +
+ +::: tip 关于这张表 +「维修」列早年称维修队长、后称维修部长。空缺处标「待补」,欢迎知情者补充;届次之间可能有跳档,未列出的也待补。各届详情可从对应年份的[会议纪要](/archived/index)进一步展开。 +::: + +## 本届组织 + +本届(26 届,2026)各岗位的详细职责分配见[职能分配](/archived/manual/function-inventory)。往届的职能记录随年份保存在[存档](/archived/index),作为组织演变的痕迹。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/about/sidebar.ts b/about/sidebar.ts new file mode 100644 index 0000000..ba6676d --- /dev/null +++ b/about/sidebar.ts @@ -0,0 +1,16 @@ +import { group, pageInGroup, pageInSection } from '../utils/navigation' + +export const sidebar = [ + pageInSection('认识 NBTCA', 'about', 'index'), + group({ + text: '从这里开始', + collapsed: false, + base: '/about/', + items: [ + pageInGroup('什么是 NBTCA', 'what-is-nbtca'), + pageInGroup('加入我们', 'join'), + pageInGroup('组织与沿革', 'organization'), + pageInGroup('基础设施与项目', 'infrastructure'), + ], + }), +] diff --git a/about/what-is-nbtca.md b/about/what-is-nbtca.md new file mode 100644 index 0000000..b76cac5 --- /dev/null +++ b/about/what-is-nbtca.md @@ -0,0 +1,48 @@ +# 什么是 NBTCA + +浙大宁波理工学院计算机协会(NBTCA)是一个诞生于 2001 年的计算机社区。它同时是一个线上的开源社区,和一所大学里的线下学生社团——很多成员两者都是。把大家聚在一起的是同一件事:**站在科技与人文的十字路口,用技术做一些真正有用、也有温度的事。** + +## 几个基本事实 + +- **名字**:计算机协会,社区里习惯叫它 NBTCA。 +- **出身**:2001 年浙大宁波理工学院建校时,由初代社长叶敏辉创立,是一个校级学生社团。 +- **依托**:线下挂靠学校的[计算机学院](/concepts/college)——该学院名称近年随院系调整而变化,具体以词条为准。 +- **在线**:一个持续活跃的开源社区,代码、文档和大部分事务都公开在 [GitHub](https://github.com/nbtca) 上。 + +## 一体的两面:开源社区与学生社团 + +NBTCA 的线上和线下不是两个组织,而是同一群朋友的两面。开源社区里的很多开发者,曾经或正是这个社团的成员;也有人是被我们的项目和理念吸引来的校外朋友。不论你从哪一面进来,结论都一样——**你就是 NBTCA 的一员**。 + +我们不太在意「你属于哪个部门」。协会名义上分[开发、维修、宣传、组织四个部门](/concepts/departments),但它们更像是「擅长什么」的软性分组:大多数人同时出现在好几件事里,按各自的长处协作。社区高度扁平,成员之间首先是朋友。 + +## 我们相信什么 + +- **科技与人文的十字路口。** 这是我们的那句话,也是我们判断一件事该不该做的尺子:它既要有技术的分量,也要对具体的人有用、有温度。 +- **有集市,也有教堂。** 一件事怎么成形,靠参与者自己推动(集市);到了要拍板时,我们集中意见(教堂)。这两个词借自 Eric Raymond 的[《大教堂与集市》](/concepts/bazaar-and-cathedral)。 +- **人强则扁平,人弱则托底。** 当大家自驱力足够,社区就像典型开源社区一样扁平地协作;当新人还没接上力,我们靠清晰的组织和文档把事情兜住,不让它荒废。你正在读的这个文档站,就是我们留给未来每一届人的那份「托底」。 + +## 我们做什么 + +- **维修日**:向全校师生提供免费电脑维修,一年约十次。这是我们最有代表性的公共服务,参与的同学也会获得[志愿者时长](/concepts/volunteer-hours)。详见[维修日](/repair/repair-day)。 +- **讲座与学习**:面向全校的 [CA101](/concepts/ca101) / [CA102](/concepts/ca102) 电脑知识普及讲座、面向社内的 [DEV101](/concepts/dev101) 开发讲座和[每周学习日](/concepts/weekly-study),以及不定期的[技术分享会](/concepts/tech-talk)(例如一次关于可观测性实践的分享)。参与 CA 讲座通常可申报[第二课堂](/concepts/second-classroom)学分([怎么申报](/process/2025/apply-for-credits))。 +- **开发与基建**:我们维护自己的服务器、公网站点、电脑维修小程序、QQ 机器人等开源项目,社区的技术积累就沉淀在这些真实项目里。详见[基础设施与项目](/about/infrastructure)。 +- **社团日常**:招新([百团大战](/concepts/club-fair))、迎新会、桌搭等线下活动,让线上的朋友在校园里也能碰面。 + +## 怎么找到我们 + +- **QQ 群**:906370401 +- **协会主页**:[nbtca.space](https://nbtca.space) +- **电脑维修小程序**:微信搜索「NBT电脑维修」 +- **代码与文档**:[github.com/nbtca](https://github.com/nbtca) + +## 想参与? + +无论你是想学点东西、修修电脑、写代码,还是只是来交个朋友,都欢迎。最轻的第一步,是读一份对你有用的文档;想再进一步,可以试着[为这个文档站贡献一次](/tutorial/2025/github-workflow)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/archived/index.md b/archived/index.md index 8632836..6b4ba8d 100644 --- a/archived/index.md +++ b/archived/index.md @@ -1,7 +1,7 @@ --- next: - text: '计算机硬件系统的搭建与维护' - link: '/archived/manual/hardware-establish' + text: '职能分配' + link: '/archived/manual/function-inventory' --- # 存档 @@ -10,7 +10,7 @@ next: 此处用于存放协会历史上的会议记录、决策和其他信息,包括: -- **手册** — 计算机硬件搭建与维护、功能清单、系统安装等技术手册 +- **组织与职能** — 历届职能分配等组织记录(技术手册已迁至[教程](/tutorial/)) - **会议记录** — 2023 至 2025 年的例会与部门会议记录 - **开发组文档** — 开发组的培养方案与规划 - **历史资料** — 2014 至 2022 年间的协会计划与活动记录 diff --git a/archived/manual/CA101.md b/archived/manual/CA101.md deleted file mode 100644 index f44c0da..0000000 --- a/archived/manual/CA101.md +++ /dev/null @@ -1,262 +0,0 @@ ---- -title: Docs with VitePress -editLink: true -lastUpdated: true ---- - -# CA101 - -:::info 维护信息 - -| 维护人 | 时间 | -| ---------------------------------------- | ---------------- | -| [@m1ngsama](https://github.com/m1ngsama) | 2025.10.13 - Now | - -::: - -[[toc]] - -## 前言 - -### 版权声明 - -NBTCA作为开源理念的坚定支持者,本文虽然不是软件,但是遵照开源的精神发布。 - -- 无担保:本文作者不保证行文内容准确无误,亦不承担任何由于使用此文档所导致的损失。 -- 自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件。 -- 名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保留作者署名并注明出处。 - -### 纠错与维护 - -由于作者水平有限,因此不能保证行文内容准确无误,如果你发现了文中错误(哪怕是错别字也好),请来信指出,任何提高文档质量的建议我都将虚心接纳。 - -当然,如果你希望新增模块并参与文章及项目贡献,欢迎提交[PR](https://github.com/nbtca/documents) - -## 名字 - -- CA101 - NBTCA组织的线下讲座活动 - -## 特征 - -- 目的:面向最广泛人员的计算机基础讲座; -- 时间:2小时,全天都有可能设置,但为了保证最多数人员的时间安排,通常在晚上; -- 地点:线下,几乎是能申请到的所有[NBT](https://www.nbt.edu.cn/)可能的线下场地,为了容纳足够的与会人员,通常在S和N区的大型教室里; -- 与会方式:主要通过[社团动态](https://nbtca.space/calendar)和第三方传播媒介参与; - -## 描述 - -CA为[NBTCA](https://nbtca.space/posts/MG)中"计算机协会"的简写,作为第一个编号,CA101自然也是面向最广泛人员的。 -CA101的内容主要来源于NBTCA所有线下活动中的经验; -CA101的组织形式目前主要是讲座; -CA101的讲座主要为了解决常见的计算机问题,包括但不限于下面若干个题目: - -- 计算机知识讲解 -- 基础计算机维护 -- 常见软硬件问题FAQs - -## 计算机知识讲解 - -> 作为科普性质的CA101,在该环节设计时应该遵循信息传递密度的基本规律,即视频大于图片大于文字,如果使采用更多直观易懂的信息呈现方式,会使得单位时间内输出的实际信息密度增加。 - -> 另外,作为一场具备讲演性质的线下活动,又不得不考虑另一件非常值得斟酌的事务:即讲演本身是否有趣取决于讲演者的表达技巧,讲演最大的技巧却又不在于你说了什么,而是讲演者使得听众感觉如何,所以若非讲演者本身才华横溢,否则CA101的成功需要一定程度的讲演设计。 - -### 计算机的定义与当前的主要用途 - -[计算机](https://en.wikipedia.org/wiki/Computer)所拥有的历史比我们想象的要长,且形态和定义在不同的历史时期很不一样,目公认的计算机认知是最近的几十年间确立下来的,而计算机的用途也随着计算机硬件的飞速发展而日新月异,那么现代计算机硬件到底包括哪些,又承担何种功用呢? - -### 计算机硬件基础 - -计算机硬件是计算机系统中所有物理部件的总称,了解硬件是维修和排障的基础。 - -#### 中央处理器(CPU) - -- CPU 是计算机的"大脑",负责执行所有计算和逻辑运算; -- 目前主流桌面端 CPU 厂商为 Intel 和 AMD,笔记本端还有高通等厂商的 ARM 架构处理器; -- 关键参数:核心数/线程数、主频/睿频、缓存大小、制程工艺、功耗(TDP); -- 维修提示:CPU 故障率极低,遇到问题先排查散热(风扇、硅脂)和供电。 - -#### 内存(RAM) - -- 内存是 CPU 与硬盘之间的数据中转站,断电后数据丢失(易失性存储); -- 当前主流规格为 DDR5,DDR4 仍大量在用,注意不同代内存插槽不兼容; -- 关键参数:容量(8GB/16GB/32GB)、频率(如 DDR5-5600)、时序; -- 维修提示:双通道插法(隔槽插入)、金手指氧化可用橡皮擦拭。 - -#### 存储设备 - -- HDD(机械硬盘):容量大、价格低,适合存储大文件,但速度慢、怕震动; -- SSD(固态硬盘):速度快、抗震,目前主流,接口分 SATA 和 NVMe(M.2); -- 关键参数:容量、读写速度、接口类型、使用寿命(TBW); -- 维修提示:数据恢复难度 SSD 远大于 HDD,务必提醒用户备份。 - -#### 显卡(GPU) - -- 独立显卡用于图形渲染、游戏、视频编辑和 AI 计算等场景; -- 主流厂商为 NVIDIA 和 AMD,不需要高性能图形处理时可使用 CPU 集成显卡; -- 关键参数:显存容量与类型、核心频率、功耗、散热方案; -- 维修提示:显卡驱动问题是最常见的故障来源之一,建议使用官方驱动。 - -#### 主板 - -- 主板是连接所有硬件的"骨架",决定了 CPU 兼容性和扩展能力; -- 关注芯片组型号(决定支持的 CPU 和功能)、内存插槽数量和类型、M.2 接口数量、供电规模; -- 维修提示:主板故障表现多样(不开机、随机重启等),排查时优先检查供电和接线。 - -#### 电源(PSU)与散热 - -- 电源为所有硬件供电,选择时需留足功率余量(建议实际需求的 1.3-1.5 倍); -- 散热系统包括风冷和水冷,良好的散热直接影响系统稳定性和硬件寿命; -- 维修提示:劣质电源是硬件损坏的常见原因,不要在电源上节省预算。 - -### 计算机软件基础 - -软件是运行在硬件之上的程序和数据的总称,分为系统软件和应用软件。 - -#### 操作系统(OS) - -- 操作系统是管理硬件资源和提供用户交互界面的核心软件; -- 常见桌面操作系统:Windows(市场占有率最高)、macOS(苹果设备专用)、Linux(开源,服务器首选); -- Windows 版本选择:普通用户推荐 Windows 11/10 Home 或 Pro,详见本站 [从零构建好用的Windows](./windows-from-scratch) 文档; -- 移动端操作系统:Android、iOS。 - -#### 应用软件 - -- 应用软件是为完成特定任务而开发的程序,如办公套件、浏览器、开发工具等; -- 软件安装来源:优先使用官方网站或官方应用商店,避免使用来路不明的安装包; -- 常见问题:捆绑安装、弹窗广告、后台占用资源——安装时注意取消勾选不必要的附加组件。 - -:::warning 注意 -不要从非官方渠道下载破解软件,这些软件可能携带恶意程序,存在安全风险。 -::: - -#### 驱动程序 - -- 驱动程序是操作系统与硬件之间的"翻译官",使操作系统能正确识别和控制硬件; -- Windows 通常会自动安装基本驱动,但显卡、网卡、声卡等可能需要手动安装官方驱动以获得最佳性能; -- 驱动更新建议:显卡驱动保持更新,其他驱动"能用就不动",避免因更新导致兼容性问题; -- 维修提示:蓝屏、设备无法识别、性能异常等问题经常与驱动相关,是排障的重要方向。 - -### 数据与信息存储 - -理解数据如何在计算机中存储和组织,对于维修工作中的数据保护和恢复非常重要。 - -#### 文件系统 - -- 文件系统定义了数据在存储设备上的组织方式; -- 常见文件系统:NTFS(Windows 默认,支持大文件和权限管理)、FAT32(兼容性好但单文件不超过 4GB)、exFAT(U 盘推荐,兼容 Windows 和 macOS); -- Linux 常用 ext4 文件系统,macOS 使用 APFS; -- 维修提示:格式化操作会清除数据,操作前务必确认目标分区。 - -#### 磁盘分区 - -- 分区是将一块物理硬盘划分为多个逻辑区域的操作; -- 分区表格式:MBR(传统,最多 4 个主分区,最大支持 2TB)和 GPT(现代,支持更多分区和更大容量); -- UEFI 启动模式搭配 GPT 分区表,传统 BIOS 搭配 MBR; -- 常用分区工具:Windows 磁盘管理、DiskGenius、GParted(Linux)。 - -#### 数据备份基础 - -- 备份策略:重要数据至少保留两份,存放在不同的物理介质上; -- 备份方式:手动复制、系统自带备份工具、云同步(OneDrive/百度网盘等); -- 维修提示:任何涉及磁盘操作的维修(重装系统、分区调整),都必须先确认用户已备份重要数据。 - -:::tip 建议 -向用户推广"3-2-1 备份法则":保留 3 份数据副本,存储在 2 种不同介质上,其中 1 份放在异地(如云端)。 -::: - -#### RAID 简介 - -- RAID(独立磁盘冗余阵列)是将多块硬盘组合使用以提高性能或可靠性的技术; -- RAID 0:数据分散写入多块盘,速度翻倍但无冗余(任一块盘坏数据全丢); -- RAID 1:数据镜像写入两块盘,安全性高但容量减半; -- RAID 5:需要至少 3 块盘,兼顾性能和冗余,允许坏一块盘; -- 个人用户一般不需要 RAID,服务器和 NAS 环境中较为常见。 - -### 网络基础 - -现代计算机几乎离不开网络,理解网络基础知识有助于排查联网问题。 - -#### TCP/IP 协议 - -- TCP/IP 是互联网通信的基础协议族,定义了数据如何在网络中传输; -- IP 地址是设备在网络中的"门牌号",IPv4(如 192.168.1.1)和 IPv6 是两种版本; -- TCP 保证数据可靠传输(如网页浏览、文件下载),UDP 追求速度但不保证可靠(如视频通话、游戏); -- 常见端口:HTTP(80)、HTTPS(443)、SSH(22)、DNS(53)。 - -#### DNS 与 DHCP - -- DNS(域名系统)将人类可读的域名(如 nbtca.space)转换为 IP 地址; -- DNS 故障会导致"能联网但打不开网页"——可以尝试手动设置公共 DNS(如 223.5.5.5 或 8.8.8.8); -- DHCP(动态主机配置协议)自动为设备分配 IP 地址,路由器通常充当 DHCP 服务器; -- 维修提示:IP 冲突、无法获取 IP 等问题通常与 DHCP 相关。 - -#### WiFi 基础 - -- WiFi 是最常用的无线局域网技术,当前主流标准为 WiFi 6(802.11ax); -- 常见频段:2.4GHz(覆盖范围大、穿墙好但速度慢、干扰多)和 5GHz(速度快但覆盖范围小); -- 校园网通常通过 802.1X 认证或 Web Portal 认证方式连接; -- 维修提示:WiFi 连接问题排查顺序——确认密码 → 重启网卡 → 检查驱动 → 重置网络设置。 - -:::tip 实用命令 -在 Windows 中可以使用以下命令快速排查网络问题: - -- `ipconfig`:查看网络配置 -- `ping`:测试网络连通性 -- `nslookup`:测试 DNS 解析 -- `netsh winsock reset`:重置网络设置 - ::: - -### 计算机编程基础 - -了解编程的基本概念有助于理解计算机的工作原理,也是开发部成员的必备知识。 - -#### 什么是编程 - -- 编程是通过特定的编程语言编写指令,让计算机按照预定逻辑执行任务的过程; -- 程序的本质是一系列指令的集合,最终被转换为机器能理解的二进制代码执行; -- 编程不等于"写代码",核心在于分析问题、设计方案和实现逻辑。 - -#### 常见编程语言 - -- **Python**:语法简洁易学,适合入门,广泛应用于数据分析、自动化脚本、AI 等领域; -- **JavaScript**:Web 前端开发的核心语言,也可用于后端(Node.js),生态丰富; -- **C/C++**:底层开发语言,性能优异,用于操作系统、嵌入式开发、游戏引擎等; -- **Java**:企业级应用广泛,跨平台能力强,安卓开发传统语言; -- **Go/Rust**:新兴系统级语言,分别擅长网络服务和安全高性能场景。 - -#### 如何开始学习编程 - -- 选择一门入门语言(推荐 Python 或 JavaScript); -- 搭建开发环境:安装对应语言的运行环境和一个代码编辑器(推荐 VS Code); -- 从基础语法开始,通过小项目实践巩固(如写一个计算器、爬虫或个人网页); -- 利用在线资源学习:官方文档、GitHub 上的开源项目、各类在线教程; -- 加入 NBTCA 开发部,参与实际项目是最有效的学习方式。 - -### 现代计算机的发展趋势 - -计算机科学在飞速发展,了解趋势有助于把握学习方向。 - -#### 人工智能(AI) - -- AI 已经从实验室走进日常生活:语音助手、图像识别、自动驾驶、大语言模型(LLM); -- 大语言模型(如 ChatGPT、Claude)正在改变人们获取信息和编写代码的方式; -- AI 的核心依赖大量算力和数据,GPU 成为 AI 训练的关键硬件。 - -#### 云计算 - -- 云计算使用户不必拥有高性能本地设备,通过网络即可使用远程服务器的计算资源; -- 主流云服务商:阿里云、腾讯云、AWS、Azure、Google Cloud; -- 常见模式:IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务); -- 对于学生而言,各大云厂商通常提供免费或低价的学生优惠。 - -#### 移动计算与物联网(IoT) - -- 智能手机的性能已经接近甚至超越数年前的个人电脑; -- 物联网将计算能力嵌入日常设备(智能家居、穿戴设备、工业传感器等); -- 边缘计算是物联网的重要支撑技术,在靠近数据源的地方进行计算处理,降低延迟。 - -#### 开源与协作 - -- 开源软件运动深刻影响了整个计算机行业,Linux、Git、Python 等均为开源项目; -- GitHub 是全球最大的代码托管平台,也是开发者协作的核心工具; -- NBTCA 也是开源理念的践行者,协会项目均托管在 [GitHub](https://github.com/nbtca) 上。 diff --git a/archived/manual/function-inventory.md b/archived/manual/function-inventory.md index d92e280..791da76 100644 --- a/archived/manual/function-inventory.md +++ b/archived/manual/function-inventory.md @@ -5,14 +5,6 @@ lastUpdated: true # 职能分配 -:::info 维护信息 - -| 维护人 | 时间 | -| ------------------------------------------------ | -------------- | -| [@Yuna-Celisse](https://github.com/Yuna-Celisse) | 2026.1.8 - Now | - -::: - [[toc]] ## 会长 @@ -56,3 +48,11 @@ Sheepkinn(2026届) - 写策划 - 推广 - 报销 + +:::info 维护信息 + +| 维护人 | 时间 | +| ------------------------------------------------ | -------------- | +| [@Yuna-Celisse](https://github.com/Yuna-Celisse) | 2026.1.8 - Now | + +::: diff --git a/concepts/bazaar-and-cathedral.md b/concepts/bazaar-and-cathedral.md new file mode 100644 index 0000000..aa9e2d3 --- /dev/null +++ b/concepts/bazaar-and-cathedral.md @@ -0,0 +1,19 @@ +# 集市与教堂 + +「集市与教堂」出自 Eric S. Raymond 的经典文章《大教堂与集市》,用两种模式比喻协作方式:教堂式自上而下、集中掌控;集市式开放、参与者驱动、并行演化。 + +## 在 NBTCA 的用法 + +NBTCA 借这对词描述自己的运作:一件事怎么形成,靠参与者自己推动(集市);到了要拍板时,集中意见做决定(教堂)。这也解释了为什么社区强时能高度扁平、弱时又需要组织托底。参见[什么是 NBTCA](/about/what-is-nbtca)。 + +## 来源 + +[The Cathedral and the Bazaar · Eric S. Raymond](http://www.catb.org/~esr/writings/cathedral-bazaar/)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/ca101.md b/concepts/ca101.md new file mode 100644 index 0000000..65f7174 --- /dev/null +++ b/concepts/ca101.md @@ -0,0 +1,24 @@ +# CA101 + +CA101 是 NBTCA 组织的、面向最广泛人员的计算机基础讲座。「CA」取自「计算机协会」(Computer Association),「101」表示最入门的一档。内容围绕计算机知识科普、基础维护和常见软硬件问题,通常是晚上两小时的线下讲座。 + +## 特征 + +- **对象**:面向全校最广泛的人员,不预设基础。 +- **形式与时长**:线下讲座,约两小时,多安排在晚上以照顾多数人的时间。 +- **场地**:校内可申请到的场地,常在 S、N 区的大型教室。 +- **参与方式**:主要通过[社团动态日历](https://nbtca.space/calendar)和其它渠道发布。 + +参与 CA 讲座通常可申报[第二课堂](./second-classroom)学分。进阶内容见 [CA102](./ca102)。 + +## 完整讲义 + +完整讲义见教程栏的 [CA101 讲义](/tutorial/manual/ca101)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/ca102.md b/concepts/ca102.md new file mode 100644 index 0000000..1deb092 --- /dev/null +++ b/concepts/ca102.md @@ -0,0 +1,19 @@ +# CA102 + +CA102 是 NBTCA 组织的进阶计算机技能讲座,作为 [CA101](./ca101) 的延伸和深化,面向已经具备基础计算机知识的成员。 + +## 与 CA101 的关系 + +CA101 面向最广泛的人员、讲基础;CA102 在此之上深化,适合已了解 CA101 内容的同学。参与 CA 讲座通常可申报[第二课堂](./second-classroom)学分。 + +## 完整讲义 + +完整讲义见教程栏的 [CA102 讲义](/tutorial/manual/ca102)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/campus-network-auth.md b/concepts/campus-network-auth.md new file mode 100644 index 0000000..354915a --- /dev/null +++ b/concepts/campus-network-auth.md @@ -0,0 +1,19 @@ +# 校园网认证 + +校园网认证是接入学校校园网前的身份认证——浙大宁波理工学院使用卓智网络的接入门户,连上网络后还需在浏览器或客户端用学号登录,才能真正上网。 + +## 怎么连 + +有线插好网线、无线连上校园 Wi-Fi 后,打开浏览器访问任意网页,通常会自动跳转到认证页,输入学号和密码登录即可。注意校园网账号一般有**设备数量限制**,超出时要先下线其他设备。 + +## NBTCA 的自建工具 + +NBTCA 做了适配校园网认证的开源工具,方便路由器等设备接入:[nbtverify](https://github.com/nbtca/nbtverify) 与 [luci-app-nbtverify](https://github.com/nbtca/luci-app-nbtverify)(用于 OpenWrt 路由器)。更多见[基础设施与项目](/about/infrastructure)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/club-fair.md b/concepts/club-fair.md new file mode 100644 index 0000000..c23705c --- /dev/null +++ b/concepts/club-fair.md @@ -0,0 +1,17 @@ +# 百团大战 + +百团大战是高校在开学季集中举办的社团招新活动,各社团摆摊展示、吸纳新成员。NBTCA 每年借此招新,通常关注排班、物料、介绍话术和新人后续引导。 + +招新前后常配合[迎新会](/concepts/welcome-party)帮新人融入;想加入 NBTCA 见[加入我们](/about/join)。 + +::: warning 待补充 +NBTCA 参加百团大战的具体安排(时间、摊位、物料、报名入口)以当年组织部与宣传部的安排为准。欢迎当届负责人补充实况。 +::: + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/college.md b/concepts/college.md new file mode 100644 index 0000000..6a5006e --- /dev/null +++ b/concepts/college.md @@ -0,0 +1,25 @@ +# 计算机学院(母体学院) + +浙大宁波理工学院的计算机类二级学院,是 [NBTCA](/about/what-is-nbtca) 线下挂靠、协作最紧密的教学机构。现名**计算机与人工智能学院**(曾用名计算机与数据工程学院)。文档里提到「学院」层面的审批、场地、第二课堂、志愿者时长等事项时,通常指该学院语境。 + +## 名称与沿革 + +- **约 2016 年**:学校整合相关研究所,成立**计算机与数据工程学院**(旧官网 [sjxy.nbt.edu.cn](https://sjxy.nbt.edu.cn/))。 +- **2026 年前后**:学校调整、新设若干学科性学院。学校官网[教学机构](https://www.nbt.edu.cn/xkxy/jxjg.htm)现已列为**计算机与人工智能学院**,聚焦人工智能落地应用。 + +::: warning 以官方为准 +**最后核对:2026-07**,依据学校官网教学机构列表,现名为「计算机与人工智能学院」。更名过渡期内,旧域名与部分材料可能仍沿用旧名;办理具体事务(审批、场地、志愿者时长、第二课堂)时,以当年官方通知为准。 +::: + +## 来源 + +- [浙大宁波理工学院 · 教学机构](https://www.nbt.edu.cn/xkxy/jxjg.htm)(官方学院列表,现名以此为准) +- [计算机与数据工程学院旧官网](https://sjxy.nbt.edu.cn/)(学院自有站,曾用名) + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/departments.md b/concepts/departments.md new file mode 100644 index 0000000..3afce45 --- /dev/null +++ b/concepts/departments.md @@ -0,0 +1,28 @@ +# 部门(开发·维修·宣传·组织) + +NBTCA 名义上分开发、维修、宣传、组织四个部门,但它们更像是「擅长什么」的软性分组:成员大量交叉协作,社区高度扁平,不存在「只属于某个部门」。 + +## 四个部门的定位 + +据《计算机协会纲要》,四个部门各有侧重: + +- **开发部**——围绕编程展开,锻炼解决问题的思维与能力,是协会的基础。 +- **维修部**——围绕硬件与动手,是协会的「行动队」,[维修](/repair/)日的主力。 +- **宣传部**——负责交际、策划与运维,是协会对外的一面。 +- **组织部**——负责活动策划、执行与档案整理,是协会的「传承」。 + +## 一句提醒 + +部门划分只是为了方便任务分配的倾向;实际工作中,个人能力决定了在事务中的权重。这也呼应我们「[集市与教堂](./bazaar-and-cathedral)」式、强则扁平的协作方式。参见[什么是 NBTCA](/about/what-is-nbtca)。 + +## 结构会变 + +各部门的具体分工和部长**随届变化**——每一代的组织方式和逻辑可能都不同,所以组织类信息天生带很长的历史。结构如何一路演变、历届领导是谁,见[组织与沿革](/about/organization);当届的详细职责分配见[职能分配](/archived/manual/function-inventory)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/dev101.md b/concepts/dev101.md new file mode 100644 index 0000000..f39fd70 --- /dev/null +++ b/concepts/dev101.md @@ -0,0 +1,15 @@ +# DEV101 + +DEV101 是 NBTCA 面向社内成员的开发主题讲座与分享系列,侧重编程与工程实践;与面向全校、讲计算机基础的 [CA101](./ca101) 相区分。 + +::: warning 待补充 +DEV101 的编号体系、固定主题和举办节奏尚未在本站完整记录,以当届开发部的安排为准。了解实情的同学欢迎补充,并附上活动留痕(例如相关会议纪要或 issue)。 +::: + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/index.md b/concepts/index.md new file mode 100644 index 0000000..05e35b8 --- /dev/null +++ b/concepts/index.md @@ -0,0 +1,40 @@ +# 概念库 + +概念库解释文档站里反复出现、读者可能不熟悉的名词。**每个词条的第一段就是一句自足的定义**——你在别处遇到带链接的名词时,不必跳转就能读懂大概(把鼠标停上去即可预览);想深入,再点进来。 + +概念页只承担解释和链接,不替代当年官方通知、表格或负责人确认。查不到官方口径时,我们宁可标注「待核实」,也不编造。**存根词条同样欢迎后人补充**——摆明的缺口就是邀请。 + +## 学校与校内事务 + +- [计算机学院(母体学院)](./college) +- [第二课堂](./second-classroom) +- [志愿者时长](./volunteer-hours) +- [校历](./school-calendar) +- [学校标识](./school-identity) +- [学工办](./student-affairs-office) +- [素拓部与社团部](./second-classroom-departments) +- [报销对接人](./reimbursement-contact) +- [校园网认证](./campus-network-auth) +- [院青协](./youth-volunteer-association) · 存根,待补充 + +## 社区与协作 + +- [集市与教堂](./bazaar-and-cathedral) +- [部门(开发·维修·宣传·组织)](./departments) +- [NBTCA Roadmap](./roadmap) + +## 活动与讲座 + +- [CA101](./ca101) +- [CA102](./ca102) +- [DEV101](./dev101) · 存根,待补充 +- [技术分享会](./tech-talk) +- [百团大战](./club-fair) · 存根,待补充 +- [迎新会](./welcome-party) · 存根,待补充 +- [每周学习日](./weekly-study) · 存根,待补充 + +## 维修与技术 + +- [维修日的前身:理工服务日](./service-day) +- [PE 系统](./winpe) +- [报修小程序](./repair-miniprogram) diff --git a/concepts/reimbursement-contact.md b/concepts/reimbursement-contact.md new file mode 100644 index 0000000..343aed7 --- /dev/null +++ b/concepts/reimbursement-contact.md @@ -0,0 +1,20 @@ +# 报销对接人 + +报销对接人是当届负责社团[报销](/process/2025/reimbursement-process)对接的成员——收集采购记录与发票、协助完成报销。这一职责随届次安排变动。 + +## 当前对接人 + +具体由当届[职能分配](/archived/manual/function-inventory)决定,变动时以当届负责人为准。 + +| 项目 | 信息 | +| -------- | ------- | +| 对接人 | 李梦莹 | +| 最后核对 | 2026-07 | + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/repair-miniprogram.md b/concepts/repair-miniprogram.md new file mode 100644 index 0000000..0f17b17 --- /dev/null +++ b/concepts/repair-miniprogram.md @@ -0,0 +1,13 @@ +# 报修小程序 + +「NBT电脑维修」是 NBTCA 的微信小程序,校内任何人都能用它发起电脑报修,是[维修工单系统](/repair/weekend)的报修入口(前端代号 Hawaii)。 + +报修提交后,维修事件进入工单系统,由维修队员接单处理,并按工作量折算[志愿者时长](/concepts/volunteer-hours)。项目详情见[基础设施与项目](/about/infrastructure)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/roadmap.md b/concepts/roadmap.md new file mode 100644 index 0000000..d66bcc9 --- /dev/null +++ b/concepts/roadmap.md @@ -0,0 +1,19 @@ +# NBTCA Roadmap + +NBTCA Roadmap 是协会在 GitHub Projects 上维护的公开事务看板,用来跟踪跨人协作的活动和任务的负责人、进度与状态。 + +## 什么时候用 + +多人协作、跨周推进、涉及公共资源或需要事后复盘的事务,适合在 Roadmap 或相关仓库的 issue 上留痕,让负责人、时间和状态可见。常见如[基础设施与项目](/about/infrastructure)的开发推进,以及各[部门](/concepts/departments)牵头的活动。 + +## 位置 + +[NBTCA Roadmap · GitHub Projects](https://github.com/orgs/nbtca/projects/5)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/school-calendar.md b/concepts/school-calendar.md new file mode 100644 index 0000000..204f319 --- /dev/null +++ b/concepts/school-calendar.md @@ -0,0 +1,19 @@ +# 校历 + +校历是学校发布的学期日程,标明教学周、考试周、节假日、补课和学期起止等节点。安排活动日期前,应先对照校历。 + +## 在活动中的用处 + +公开活动、跨学院活动,以及需要场地审批的活动,通常应在立项时检查校历,避开考试周、假期和大型校级活动。 + +## 相关来源 + +校历由学校官网发布,以当年版本为准:[宁理校历](https://www.nbt.edu.cn/xysh/nlxl.htm)(学校官网「校园生活 › 宁理校历」,最后核对 2026-07 时为 2026–2027 学年校历,以图片形式发布)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/school-identity.md b/concepts/school-identity.md new file mode 100644 index 0000000..9b1d666 --- /dev/null +++ b/concepts/school-identity.md @@ -0,0 +1,27 @@ +# 学校标识 + +学校标识指学校的校标、校名、校旗、校训及其视觉使用规范。社团宣传若需要使用受保护的校徽或校名组合,应以学校官方规范和当年要求为准。 + +## 学校标识包含什么 + +据学校官网[学校标识](https://www.nbt.edu.cn/xqzl/xxbs.htm)页(最后核对 2026-07): + +- **校标**:白底蓝色双圆设计,融入浙江大学元素。 +- **校训**:明德、弘毅、开物、启新。 +- **校旗**及配套的**使用规范文件、PPT 模板、宣传册**等可下载资源。 + +## 使用边界 + +活动宣传可以说明活动在校内举办、或由校内组织参与;未确认授权前,不宜把校徽、校旗或官方视觉规范直接当作社团宣传素材。使用前请以官方规范文件为准。 + +## 相关来源 + +- [浙大宁波理工学院 · 学校标识](https://www.nbt.edu.cn/xqzl/xxbs.htm) + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/second-classroom-departments.md b/concepts/second-classroom-departments.md new file mode 100644 index 0000000..3cddaa0 --- /dev/null +++ b/concepts/second-classroom-departments.md @@ -0,0 +1,15 @@ +# 素拓部与社团部 + +素拓部(素质拓展部)与社团部是学校 / 学院团委下属、负责学生活动与[第二课堂](/concepts/second-classroom)事务的部门。计算机协会作为院级社团,[申报第二课堂学分](/process/2025/apply-for-credits)时按活动级别对接:**校级找素拓部,院级找社团部**。 + +::: warning 以当年为准 +部门名称、对接人和具体流程可能随年份与学院调整。办理时以当年的官方通知为准。 +::: + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/second-classroom.md b/concepts/second-classroom.md new file mode 100644 index 0000000..e47debd --- /dev/null +++ b/concepts/second-classroom.md @@ -0,0 +1,19 @@ +# 第二课堂 + +第二课堂是高校在课堂教学(第一课堂)之外,对学生参与社团活动、志愿服务、学术讲座等课外实践进行认定并计入综合素质评价的制度。学校通过「第二课堂成绩单」把课外经历纳入记录,部分学分与毕业要求、综合测评和评奖评优挂钩。 + +## 与 NBTCA 的关系 + +参与 NBTCA 的 CA 讲座等活动,通常可申报相应的第二课堂学分。具体怎么申报,见[申请第二课堂学分](/process/2025/apply-for-credits)。 + +::: warning 以当年为准 +第二课堂的申报入口、系统和所需材料会随年份和学院调整而变化。办理时以当年官方通知、系统入口和实际审批意见为准,不要仅凭本页。 +::: + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/service-day.md b/concepts/service-day.md new file mode 100644 index 0000000..8fd1fca --- /dev/null +++ b/concepts/service-day.md @@ -0,0 +1,15 @@ +# 理工服务日 + +理工服务日是 NBTCA 早期面向全校的公益服务活动,以电脑清灰、检修、日常维护等免费项目为主,是今天[维修日](/repair/repair-day)的前身。「理工」取自学校旧称宁波理工。 + +在「半学习半公益」的自我定位下,理工服务日是协会「服务大众」的主要载体(见[组织与沿革](/about/organization))。随着报修流程线上化、[志愿者时长](/concepts/volunteer-hours)与工单系统成形,它逐步演化为如今定期化、可追溯的[维修日](/repair/repair-day)。 + +〔待核实:理工服务日的起止年份、举办频率与具体项目清单,以当年会议纪要为准。〕 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/student-affairs-office.md b/concepts/student-affairs-office.md new file mode 100644 index 0000000..685c53f --- /dev/null +++ b/concepts/student-affairs-office.md @@ -0,0 +1,21 @@ +# 学工办 + +学工办是学生工作办公室的简称,负责学生日常事务。社团[借教室](/process/2025/borrow-classroom)、活动审批等事项,通常与学工办的团委老师对接。 + +## 对接与联系 + +对接的团委老师由学工办安排,**岗位有人员流动**,联系前请确认当前实际负责人与办公地点。 + +| 项目 | 信息 | +| -------- | ------------- | +| 对接老师 | 张梦驰老师 | +| 办公地点 | 石麟大楼 401A | +| 最后核对 | 2026-07 | + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/tech-talk.md b/concepts/tech-talk.md new file mode 100644 index 0000000..9fc8721 --- /dev/null +++ b/concepts/tech-talk.md @@ -0,0 +1,13 @@ +# 技术分享会 + +技术分享会是 NBTCA 社内不定期举办的技术主题分享——由成员就自己擅长或正在做的方向开讲,规模小、专业性强。例如一次关于可观测性实践(日志、指标、链路追踪)的分享。 + +与面向全校、讲基础的 [CA101](/concepts/ca101) / [CA102](/concepts/ca102) 讲座不同,技术分享会更偏社内、进阶,也更随性。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/volunteer-hours.md b/concepts/volunteer-hours.md new file mode 100644 index 0000000..3ae8acd --- /dev/null +++ b/concepts/volunteer-hours.md @@ -0,0 +1,19 @@ +# 志愿者时长 + +志愿者时长是学生参加志愿服务所获得、可用于校内记录、证明或评奖评优的服务时数认定。在 NBTCA,参与维修日等志愿服务的同学按工作量获得相应时长。 + +## 在 NBTCA 怎么算 + +维修事件按 `size:` 标签折算工时,具体计算方式见[工单系统](/repair/weekend)的志愿者时长统计部分。 + +## 认定与审批 + +〔待核实〕维修日志愿者时长的考勤与审批流程(2025 年部长会议曾提到走院方钉钉签到签退、由学院或青协相关负责人审批)以当年负责组织的通知和材料要求为准。了解实情的同学欢迎补充并附来源。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/weekly-study.md b/concepts/weekly-study.md new file mode 100644 index 0000000..fec8187 --- /dev/null +++ b/concepts/weekly-study.md @@ -0,0 +1,17 @@ +# 每周学习日 + +每周学习日是 NBTCA 面向成员的常规学习活动——每周固定时间聚在一起学习、分享或推进项目,是社区在讲座之外维持技术氛围的日常方式。 + +它与面向社内的[技术分享会](/concepts/tech-talk)、[DEV101](/concepts/dev101) 开发讲座相互补充:前者是日常,后两者是不定期的专题分享。 + +::: warning 待补充 +每周学习日的固定时间、地点和组织方式尚未在本站记录,随各学期安排而变化,以当届通知为准。欢迎补充实况。 +::: + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/welcome-party.md b/concepts/welcome-party.md new file mode 100644 index 0000000..3ae900d --- /dev/null +++ b/concepts/welcome-party.md @@ -0,0 +1,15 @@ +# 迎新会 + +迎新会是 NBTCA 面向新社员和新生的欢迎活动,通常在秋季招新([百团大战](/concepts/club-fair))前后举办。它让新加入的人认识社区、了解大家在做的事,是[加入我们](/about/join)之后融入的第一站。 + +::: warning 待补充 +每届迎新会的具体形式、时间和内容以当届安排为准。欢迎补充实况。 +::: + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/winpe.md b/concepts/winpe.md new file mode 100644 index 0000000..fa74345 --- /dev/null +++ b/concepts/winpe.md @@ -0,0 +1,17 @@ +# PE 系统 + +PE 系统(Windows PE,预安装环境)是一个可以从 U 盘启动的精简版 Windows,用于在主系统进不去、或需要脱离主系统操作时,进行维修、装机、分区和数据抢救。 + +## 维修里的用处 + +- 主系统无法进入时,用 PE 启动来排查故障、备份数据、重装系统。 +- 强删顽固文件(例如清理残留时进 PE 直接删除,见[维修操作指南](/repair/guide))。 +- 制作 PE 启动盘的工具,见[软件仓库索引](/repair/tools)。 + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/concepts/youth-volunteer-association.md b/concepts/youth-volunteer-association.md new file mode 100644 index 0000000..0818916 --- /dev/null +++ b/concepts/youth-volunteer-association.md @@ -0,0 +1,15 @@ +# 院青协 + +院青协指学院的青年志愿者协会,是校内组织和认定志愿服务的学生组织之一。NBTCA 的维修日等志愿活动,[志愿者时长](./volunteer-hours)的对接与认定常与其相关。 + +::: warning 存根词条 · 待补充 +这是一个存根:院青协的具体职责、对接人和时长认定流程尚未在本站确认。欢迎了解实情的同学补充,并附上来源——留着这个缺口,就是邀请后人来补。 +::: + +:::info 维护信息 + +| 维护人 | 时间 | +| ---------------------------------------- | ------------- | +| [@m1ngsama](https://github.com/m1ngsama) | 2026.07 - Now | + +::: diff --git a/docs/adr/0001-documentation-governance.md b/docs/adr/0001-documentation-governance.md deleted file mode 100644 index e8fb548..0000000 --- a/docs/adr/0001-documentation-governance.md +++ /dev/null @@ -1,44 +0,0 @@ -# ADR 0001: Documentation Governance Baseline - -## Status - -Accepted - -## Date - -2026-05-28 - -## Context - -`nbtca/documents` 是协会文档站点,内容同时服务教程、流程、维修和历史存档。项目需要支持非开发者贡献 Markdown,也需要让维护者能稳定审阅导航、链接、附件和站点构建。 - -当前项目已经使用 VitePress、按栏目分目录,并通过 sidebar 配置组织站点结构。不同栏目使用了不同导航方式:教程、流程和维修手写 sidebar,存档自动扫描。这个状态可以工作,但需要明确治理边界,避免新增内容时不知道该改哪里。 - -## Decision - -采用 VitePress 作为文档站点框架,继续以 Markdown 文件作为主要内容来源。 - -文档按栏目分目录: - -- `tutorial/` 保存教程。 -- `process/` 保存协会流程。 -- `repair/` 保存维修相关文档。 -- `archived/` 保存历史存档。 - -将 sidebar module 和 CI contract 作为治理 seam: - -- sidebar module 负责把栏目内容暴露给站点导航。 -- CI contract 负责在合并前验证格式、测试和站点构建。 -- 贡献文档、项目上下文和 ADR 负责说明人应该如何提交和审阅变更。 - -这个决策不要求所有栏目立刻使用同一个导航实现,但要求每个栏目都能说明页面放置规则、导航更新位置和验证命令。后续可以在不改变栏目语义的前提下,逐步统一 sidebar 的实现接口。 - -## Consequences - -贡献者新增页面时,需要同时考虑内容位置、导航入口、链接和构建验证。 - -维护者审阅 PR 时,可以用栏目边界、sidebar 变更和 CI 结果作为主要检查点,而不是只看 Markdown 是否能被渲染。 - -存档内容可以保留更宽松的历史结构,但活跃教程、流程和维修文档应逐步收敛到更明确的内容契约。 - -如果未来重构导航实现,应保持公开 URL 稳定,并把迁移写入新的 ADR 或更新本 ADR 的 superseded 状态。 diff --git a/docs/editorial-standard.md b/docs/editorial-standard.md new file mode 100644 index 0000000..a97dd28 --- /dev/null +++ b/docs/editorial-standard.md @@ -0,0 +1,75 @@ +# Editorial Standard · NBTCA documents + +写给每一个改这个站的人——**包括 AI**。 + +## Status + +Active(活文档,随实践更新) + +## Date + +2026-07-07 + +## 为什么有这份标准 + +AI 繁荣的当下,愿意手写文档的人越来越少——这没关系。但 AI 不知道所有约束,会随处乱写;真人没有规范也一样。没有成文约束,站点会退回到「看似专业、其实脑补」的内容。而 NBTCA 是一个把细节与人文当回事的社区,垃圾内容会让人离开。 + +这份标准让文档的**严谨与可读可被检查、可被守住**。我们不是 Wikipedia 那样的大组织,但我们借鉴它的经验:可供查证(Verifiability)、不搞原创研究(No Original Research)、中立(NPOV)。 + +## 北极星 + +一句话:**To be at the intersection of technology and liberal arts.** + +读者的感受不靠煽情制造,而由细节自然长出。四条价值,每条都要能在每一页上被检查: + +| 价值 | 落到写作上 | +| ------------ | -------------------------------------------- | +| 我们的行文 | 清晰、不啰嗦、面向完全不懂的陌生人 | +| 对真相的严谨 | 可查证、反脑补 | +| 对技术的热爱 | 讲透原理、用对工具、不糊弄 | +| 人文关怀 | 隐私最小化、求助有边界、中立不劝诱、优雅降级 | + +## 支柱一 · 写作纪律 + +- **一篇一职。** 每篇只回答一个层级的问题。主流程文只讲判断与导航(我该不该做、按什么顺序、去哪找);可勾选、可打印的执行件放进材料卡;一句话名词解释放进概念词条。 +- **首段即答案。** 开篇第一段就是自足的结论或定义,读完首段即懂大概。概念词条尤其严格:首段那句定义会被悬停卡自动取用——写不好,卡片当场露馅。 +- **面向新人。** 不预设内幕知识。黑话首次出现即链到概念词条,或给一句解释。 +- **清单只活一处。** 同一份 checklist、分工表只存在于一个地方;别处只留一句摘要加链接。重复迟早打架。 +- **中立陈述。** 有争议的事(例如活动与第二课堂学分、志愿者时长挂钩)只客观记录现状,不替任何一派站队、不劝诱。 +- **主动语态、平实动词、句子式大小写。** 一个元素只做一件事:标签只标注,示例只演示。 + +## 支柱二 · 事实验证 + +- **只写做过或确认过的(反脑补铁律)。** 流程必须从 NBTCA 真实运作里长出来。答不上「这条你问过谁、在哪见过」的,就不许写成事实。凭空发明流程形状,本身即不合格。 +- **查不到就标注,不编造。** 缺口留成「待核实」并指向具体的人或官方来源,绝不用一个自信的假句子或空占位符糊弄。缺口摆明面上,是邀请人来补。 +- **分清长期判断与当年事实。** 「涉及审批就早准备」是长期判断,稳定、少引用;「某系统入口、某审批人」是当年事实,易变。 +- **易变事实集中一处,带核对日期。** 当年会变的事实收进对应概念词条,附官方来源与 `最后核对:YYYY-MM`。过期只烂在一处,不污染主流程文的判断骨架。 +- **易变的人、岗位、联系人也抽成词条。** 不在正文里散落「当年为 X」;「谁是对接老师」「谁负责报销」这类随人事变动的信息,收进对应词条、正文只链接过去——人一换,只改那一个词条。 +- **溯源靠人,不靠计时器。** 文档的变更是事件驱动(机构、人员变动),不是时间驱动。每页保留真实「维护信息」(谁负责、该问谁),不留 `???`。 +- **修订历史交给 git。** 「谁改了什么」由 git blame、GitHub 历史与 VitePress `lastUpdated` 自动记录。维护信息块是 stewardship(对这页负责的人),不是逐行 changelog,不要手写。 + +## 结构与维护约定 + +- **顶层信息架构**:认识 NBTCA · 上手 · 教程 · 流程 · 维修 · 参考 · 存档。 +- **概念词条**住在 `concepts/`(导航「参考」),**不放 `archived/`**。`archived/` 只留真历史;仍在生效的手册、身份文档应迁回「教程」或「认识 NBTCA」。 +- **概念词条格式**:`# 标题` → `维护信息` → 首段定义(自足,供悬停卡)→ 相关来源 →(若易变)`最后核对` 状态。 +- **不做大规模迁移。** 新内容 100% 守标准;旧内容只在你本来就要动它时顺手升级(童子军原则)。缺口用红链或存根标出,不假装完整。 +- **历史文档保原貌,活跃文档要审阅。** 会议纪要、往届计划、旧纲要等历史材料不做大规模修正;活跃与技术文档应持续审阅、更新行文——简洁、准确、剔除 AI 生成的冗余与套话。整理这个站,就是在建社区自己的知识库。 +- **小而集中的 PR。** 见 [CONTRIBUTING](../CONTRIBUTING.md):内容、导航、CI、资产尽量分开提交,便于审阅与回滚。 +- **维护信息默认链接 GitHub 主页**(隐私)。不在文档里硬编私人邮箱或 QQ;愿意公开邮箱的,本人可放在自己的 GitHub 主页。 +- **站内链接即词条(wiki 模型)**。链接只有两档:**站内**(都是可悬停预览的「词条 / 文章」,虚线样式)与**站外**(尾随 ↗)。因此每个站内可链接的页面都要有一句**自足的首段**(供预览取用),标题也要能独立读懂——不合适就调整。 + +## 合并前自检(AI 和真人都先过一遍) + +- [ ] 这篇只做一件事吗?清单或表格有没有和别处重复? +- [ ] 首段读完能懂大概吗?(概念词条:首段是不是一句自足定义?) +- [ ] 新人会不会被没解释的黑话挡住?**站内术语在首次出现处链了概念、站外工具/服务/标准给了外链**吗?(只在首次出现处链,避免过度链接) +- [ ] 每条时效性或官方断言,答得上「问过谁、哪来的」吗?查不到的是否标注而非编造? +- [ ] 易变事实是否收进词条、带来源和 `最后核对` 日期? +- [ ] 有争议处是否中立、无劝诱?是否只按必要范围收集与公开个人信息? +- [ ] 这页有真实维护信息(不是 `???`)吗? +- [ ] 站内链接、sidebar,以及 `pnpm docs:build` 和 `pnpm run ci:lint` 都通过吗? + +--- + +本标准是活文档,随实践更新。第一批样板:[`about/what-is-nbtca`](../about/what-is-nbtca.md)、[`concepts/college`](../concepts/college.md)。 diff --git a/docs/reconstruction-notes.md b/docs/reconstruction-notes.md new file mode 100644 index 0000000..75ff06b --- /dev/null +++ b/docs/reconstruction-notes.md @@ -0,0 +1,48 @@ +# Reconstruction Notes · NBTCA documents + +重构进展与交接说明。工作/治理文档,不发布到站点(`docs/` 已被 srcExclude)。本文件在提交本次大更新 PR 时定稿,供 reviewer 与后续维护者了解「做了什么、什么还留着待补」。 + +## Status + +站点 wiki 化重构(第一阶段)完成,本次以 PR 提交 · 最后更新 2026-07-09 + +## 本次已完成 + +- **认识 NBTCA 板块**:门厅 +《什么是 NBTCA》《加入我们》《组织与沿革》《基础设施与项目》,面向「完全不了解本社区的陌生人」这一首要读者。 +- **编辑标准(宪法)** `docs/editorial-standard.md`:四价值、写作纪律与事实验证两支柱、合并前自检清单,供 AI 与人类作者共用。 +- **视觉识别**:品牌蓝 `#124689`(取自 logo)、元数据等宽「机器层」、事实核查「溯源戳」、首页黄金分割构图。 +- **站内 wiki 化**:概念库 23 条,每条首段即自足定义;构建期自动取首段生成**悬停预览卡**(渐进增强,触屏回落为点击)。站内链接统一为「可预览词条」,站外链接加 ↗。 +- **导航收敛**:主导航精简为 关于 / 指南 / 维修;教程与流程合并为「指南」。 +- **手册整理**:非社务手册从存档迁入教程 / 概念库,并按编辑标准瘦身、去 AI 水(CA101、windows-from-scratch、os-skills、net-usage、github 教育认证等)。 +- **组织沿革**:从存档重建 2001–2026 历届领导表与改革脉络;移动端窄表横滑优化。 +- **阅读体验**:维护信息「溯源戳」从标题下移至页面底部,让引言/定义紧跟标题(内容先行);概念间补齐交叉链接,除天然叶子外全部双向可穿梭。 +- **治理收敛**:删除 AI 脚手架式的 `CONTEXT.md` 与 `docs/adr/`,精简 `CONTRIBUTING.md` 到当前导航模型;`CODEOWNERS` 去 catch-all,文档评审指向会长与 documents 主力。 + +## 需要贡献者确认的事实(不编造,留给知情者) + +### 维护信息占位符(宪法禁止 `???` / `待补充`) + +- `process/2025/apply-for-credits.md` — [@ZaoAn0skiler],时间 `??? - ???` +- `process/2025/borrow-classroom.md` — [@qyc1319],时间 `??? - ???` +- `process/2025/event-organization.md`、`repair/checklist.md`、`tutorial/2025/clean-drive-c.md` — 维护人 `待补充` + +这些是真人负责的页面,请补真实的维护人与起止时间——不替真人编日期。 + +### 历届领导表待补 + +`about/organization.md`:19 / 21 届的宣传·组织岗、24 / 25 届多数岗位仍标「待补」,欢迎知情者补充。 + +### 维修日当日流程 + +`repair/repair-day.md` 三处〔待核实〕:报修接应与派工、现场引导海报是否落地、志愿者签到是否走院方钉钉。 + +### 词条存根待补 + +院青协、DEV101、百团大战、迎新会、每周学习日——首段已是真定义,细节标了待补充,等当届补实况并附来源。 + +## 后续可继续的方向 + +- 继续回填历届领导表与维护信息占位符。 +- 逐步为既有 `process/` `tutorial/` 页面补概念交叉链接(此前循童子军原则,仅动新写页面)。 +- 桌搭、NWDC 等尚缺可靠事实的词条,待口述后再建。 +- 其余栏目是否也套「枢纽 + 无全量边栏」模型,可后续讨论。 diff --git a/index.md b/index.md index f00f724..7e430c8 100644 --- a/index.md +++ b/index.md @@ -11,23 +11,20 @@ hero: alt: NBTCA-Logo actions: - theme: brand - text: 教程 - link: /tutorial/index - - theme: brand - text: 流程 - link: /process/index + text: 认识 NBTCA + link: /about/what-is-nbtca - theme: alt - text: 维修 - link: /repair/guide + text: 指南 + link: /tutorial/ - theme: alt - text: 存档 - link: /archived/index + text: 维修 + link: /repair/ ---