Skip to content

内容编写指南

这份指南面向所有想为 DNUI Survival Guide 写点东西的同学。你只需要会 Markdown,照着下面的规范写,维护者就能快速 Review,你的内容也能更快上线。

贡献一篇文章的完整流程

text
选择栏目 → 创建 Markdown 文件 → 写 Frontmatter → 写正文
→ 登记侧边栏 → 本地检查 → 提交 Pull Request → Review → Merge → 自动上线

只想改错字或补充几句话?不需要走完整流程,直接在目标页面底部点击「在 GitHub 上编辑此页」即可。基本协作流程见参与贡献

第一步:选择栏目

站点内容按一级栏目存放在仓库根目录的同名文件夹中:

栏目目录适合的内容
新生指南freshman/入学、选课、新生 FAQ
校园生活campus/食宿、出行、周边
学习指南study/学习方法、绩点、资源
课程指南courses/课程学习经验
计算机方向cs/编程、技术路线、项目
竞赛competition/各类竞赛经验
实习就业career/实习、校招、面试
升学postgraduate/考研、保研、留学
经验分享experience/个人经验与规划
  • 拿不准放哪里:先开一个 Issue 问一下,或在 PR 里说明。
  • 想新增一个大栏目:请先开 Issue 讨论,避免目录结构频繁变动。

第二步:创建文件

在栏目目录下新建 Markdown 文件,命名规范:

  • 小写英文、数字、连字符(-,例如 dorm-life.mdcet4-guide.md
  • 不使用中文、空格、下划线;
  • 文件名能看出主题,尽量简短。

文件路径决定文章网址:

text
campus/dorm-life.md  →  /campus/dorm-life

第三步:编写 Frontmatter

每篇文章的开头必须有一段 YAML 信息头:

yaml
---
title: 宿舍生活指南
description: 校内宿舍的作息、物品准备与常见问题。
---
  • title:文章标题,显示在浏览器标签、搜索结果和侧边栏中;
  • description:一句话概括(建议 20~60 字),用于搜索摘要和 SEO。

NOTE

Frontmatter 里的 title 是给浏览器和搜索引擎看的;页面正文里还要再写一个一级标题(见下文),两者保持一致即可。

第四步:正文格式规范

标题层级

  • 正文第一个标题用 #,与 Frontmatter 的 title 保持一致;
  • 之后按 ##### 逐级递减,不要跳级(不要 # 之后直接 ###);
  • 不要用标题语法给普通文字「加粗放大」。
markdown
# 宿舍生活指南

## 物品准备

### 床上用品

## 常见问题

段落与排版

  • 段落之间空一行;
  • 中文与英文、数字之间建议加一个空格(如「DNUI 2025 级」「GPA 计算」);
  • 一句话能说清的事,不要拆成一堆小标题;
  • 重点可以用 **加粗**,但一段里别超过一处。

列表

markdown
- 无序列表项
- 另一项

1. 有序列表第一项
2. 第二项

并列内容用列表,有先后顺序的用数字列表;不要把整段话塞进列表项。

链接

  • 站内链接:以 / 开头、不带扩展名,指向栏目或文章,如 [校园生活](/campus/)[新生指南](/freshman/)
    • 指向栏目首页时保留结尾的 /
    • 构建时会自动校验站内链接,链接失效会导致构建失败;
  • 站外链接:使用完整 https:// 地址,并让链接文字有意义(不要只写「点这里」)。

图片

  • 图片放在 public/images/<栏目名>/ 目录下,例如 public/images/campus/dorm-1.jpg
  • 用根路径引用:![宿舍内景](/images/campus/dorm-1.jpg)
  • 文件名使用小写英文和连字符;
  • 单张图片建议小于 500KB,先压缩再上传;
  • 截图必须先打码个人姓名、学号、手机号等敏感信息;
  • 不要上传他人照片;尽量避免引用外部图床(容易失效)。

代码块

  • 标注语言(如 ```bash```ts```text);
  • 只有命令、配置和代码才放进代码块,普通文字不要放进去。

表格

适合展示并列的对照信息:

markdown
| 学期 | 建议关注 |
| --- | --- |
| 大一 | 适应节奏、打好基础 |
| 大二 | 确定方向、参加竞赛 |

提示框

使用 GitHub 风格的 alert 语法,在网站和 GitHub 上都会渲染成醒目的提示框:

markdown
> [!NOTE]
> 用于补充说明。

> [!TIP]
> 用于实用建议。

> [!WARNING]
> 用于提醒风险或易错点。

实际效果:

TIP

善用提示框强调重要信息,但一篇文章建议不超过三个。

内容要求

格式之外,请遵守以下内容底线(详见仓库 CONTRIBUTING.md):

  • 真实可靠:不编造学校政策、收费、宿舍、考试、就业数据等信息;不确定的内容写明「待确认」并注明来源;没有可靠内容就先不写。
  • 标注视角:经验类内容请说明背景(年级、专业方向等),它们代表作者个人观点,不代表学校或本项目立场。
  • 保护隐私:不发布个人敏感信息(手机号、学号、成绩单等),截图先打码。
  • 尊重版权:原创优先;转载必须获得授权并注明出处;引用官方信息请给出链接。
  • 中立克制:不对教师、课程、企业进行打分或攻击性评价;不包含歧视、攻击性内容。
  • 主题集中:一篇文章只写一个主题,建议 500~2000 字;内容太多就拆成几篇。

第五步:登记侧边栏

新文章要出现在对应栏目的侧边栏中,需要在 .vitepress/config/sidebar.ts 里加一行:

ts
'/campus/': [
  {
    text: '校园生活',
    items: [
      { text: '概览', link: '/campus/' },
      { text: '宿舍生活', link: '/campus/dorm-life' },
    ],
  },
],

link 不带扩展名、不带结尾 /(栏目首页除外)。忘了登记文章也能上线,只是不方便被找到,维护者 Review 时一般会提醒补上。

第六步:本地检查(可选但推荐)

本地运行(需要 Node.js 22+):

bash
npm install
npm run docs:dev      # 打开 http://localhost:5173 实时预览
npm run docs:build    # 构建校验(含站内死链检查)

纯文字的小修改可以跳过;涉及新文件、链接、图片、侧边栏改动时,建议跑一遍 docs:build 确认通过——CI 也会在 PR 上执行同样的检查。

第七步:提交 Pull Request

bash
git checkout -b docs/add-dorm-life
# 修改、保存文件后:
git add .
git commit -m "docs: add campus dorm life guide"
git push origin docs/add-dorm-life

然后到 GitHub 上打开 Pull Request,按 PR 模板填写「修改内容 / 修改类型 / Checklist」。提交后:

  1. 等待 Build Check 变绿;红色 ❌ 表示构建失败,点进去看日志修复;
  2. 等待维护者 Review,可能提出修改建议,直接在同一分支继续提交即可;
  3. Merge 之后 Cloudflare Pages 自动部署,几分钟内网站更新。

文章模板

复制下面的模板,替换大括号里的内容即可开始写:

markdown
---
title: {文章标题}
description: {一句话概括,20~60 字}
---

# {文章标题}

开头用两三句话说明:这篇文章写给谁、解决什么问题。

## {第一个小节}

正文内容。并列的信息用列表,对照的信息用表格。

> [!TIP]
> 需要特别提醒的信息放在提示框里。

## {第二个小节}

## 常见问题

### {问题一}

### {问题二}

## 参考与致谢

- 内容如有参考来源,在这里列出链接;原创内容可删除本节。

常见问题

Q:我只写了一半,可以先提交吗? 可以。在 PR 描述里注明「草稿 / WIP」,或者使用 GitHub 的 Draft PR,维护者会先给意见再继续。

Q:我写的经验只代表我个人,会不会误导别人? 写明你的背景和视角即可(如「2023 级软件工程,以下是我个人的做法」)。经验分享本来就是本站的重要内容。

Q:不确定某些信息准不准,还能写吗? 能。把不确定的部分明确标出来(如「此条待确认,欢迎补充」),或在 PR 里说明。不要为了完整性把猜测写成事实。

Q:文章写多长合适? 一个主题 500~2000 字通常够了。太长的话拆成「上/下」或多篇互相链接的文章。

Q:我想修改别人的文章,可以直接改吗? 可以,这正是开源协作的方式。修改较大时建议先在 PR 里说明理由;修正错字、补充信息则直接提交即可。

非官方社区项目,与大连东软信息学院官方无隶属关系 · 校徽版权归大连东软信息学院所有