Skip to content

Rapide 主题语法完整指南

本文档详细介绍 Rapide 主题的所有语法特性,重点关注代码块和标注(Asides)的处理


标注(Asides)是用于突出显示特定信息的特殊块,在 Rapide 主题中样式优美,非常适合强调重要内容。

标注使用三个冒号 ::: 包裹,后面跟标注类型:

Terminal window
:::note
这是一个普通提示。
:::

Rapide 支持以下 5 种标注类型:

用于一般性的提示信息。

语法:

Terminal window
:::note
这是一个普通的提示信息,用于补充说明。
:::

效果:


用于提供有用的技巧或最佳实践。

语法:

Terminal window
:::tip
这是一个技巧提示,建议你这样做会更好!
:::

效果:


用于提醒用户需要注意的事项。

语法:

Terminal window
:::caution
这是一个警告信息,请特别注意这个操作!
:::

效果:


用于严重警告,表示可能导致严重后果的操作。

语法:

Terminal window
:::danger
这是一个危险警告!此操作可能导致数据丢失或系统崩溃!
:::

效果:


你可以为标注添加自定义标题,使用方括号 [] 语法:

语法:

Terminal window
:::note[💡 重要提示]
使用自定义标题可以让标注更加醒目和个性化。
:::

效果:

更多示例:


标注内部可以使用所有 Markdown 语法:


Rapide 主题对代码块有出色的支持,提供语法高亮、行号、标题等功能。

使用三个反引号包裹代码,并指定语言:

语法:

Terminal window
```javascript
function hello() {
console.log("Hello, Rapide!");
}
```

效果:

Terminal window
function hello() {
console.log("Hello, Rapide!");
}

Rapide 支持几乎所有主流编程语言的语法高亮:

Terminal window
// JavaScript 示例
const greeting = (name) => {
return `Hello, ${name}!`;
};
console.log(greeting("World"));
Terminal window
// TypeScript 示例
interface User {
name: string;
age: number;
}
const user: User = {
name: "Alice",
age: 30
};

Terminal window
# Python 示例
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
# 计算前10个斐波那契数
for i in range(10):
print(f"F({i}) = {fibonacci(i)}")

Terminal window
// Java 示例
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Rapide!");
// 创建数组
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
}
}

Terminal window
// C 语言示例
#include <stdio.h>
int main() {
printf("Hello, Rapide!\n");
// 简单循环
for (int i = 0; i < 5; i++) {
printf("%d ", i);
}
return 0;
}
Terminal window
// C++ 示例
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (const auto& num : numbers) {
std::cout << num << " ";
}
return 0;
}

Terminal window
// Rust 示例
fn main() {
let numbers = vec![1, 2, 3, 4, 5];
let sum: i32 = numbers.iter().sum();
println!("Sum: {}", sum);
// 使用闭包
numbers.iter()
.map(|x| x * 2)
.for_each(|x| println!("{}", x));
}

Terminal window
// Go 语言示例
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
sum := 0
for _, num := range numbers {
sum += num
}
fmt.Printf("Sum: %d\n", sum)
}

Terminal window
<!-- HTML 示例 -->
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Rapide 示例</title>
</head>
<body>
<h1>欢迎使用 Rapide 主题</h1>
<p>这是一个段落。</p>
</body>
</html>
Terminal window
/* CSS 样式示例 */
body {
font-family: 'Arial', sans-serif;
line-height: 1.6;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.container {
display: flex;
justify-content: space-between;
align-items: center;
}
.button {
background-color: #3498db;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.button:hover {
background-color: #2980b9;
}

Terminal window
#!/bin/bash
# Bash 脚本示例
echo "开始执行脚本..."
# 变量定义
NAME="Rapide"
VERSION="1.0"
echo "主题: $NAME"
echo "版本: $VERSION"
# 条件判断
if [ -f "package.json" ]; then
echo "找到 package.json 文件"
npm install
fi
# 循环
for i in {1..5}; do
echo "第 $i 次循环"
done

Terminal window
-- SQL 查询示例
SELECT
users.id,
users.name,
users.email,
COUNT(orders.id) as order_count
FROM users
LEFT JOIN orders ON users.id = orders.user_id
WHERE users.created_at >= '2024-01-01'
GROUP BY users.id, users.name, users.email
HAVING COUNT(orders.id) > 5
ORDER BY order_count DESC
LIMIT 10;

Terminal window
{
"name": "rapide-theme",
"version": "0.4.0",
"description": "A beautiful theme for Starlight",
"keywords": ["astro", "starlight", "theme"],
"author": "Your Name",
"license": "MIT",
"dependencies": {
"@astrojs/starlight": "^0.34.3",
"astro": "^5.7.13"
}
}
Terminal window
# YAML 配置示例
title: My Documentation
theme: rapide
features:
- code-highlighting
- dark-mode
- responsive-design
social:
- label: GitHub
icon: github
href: https://github.com/username/repo
- label: Twitter
icon: twitter
href: https://twitter.com/username

Rapide 主题的代码块支持强大的 Expressive Code 特性,包括行号文件名高亮行Diff 标记等。

项目已配置自动显示行号,所有代码块都会显示:

Terminal window
// 左侧会自动显示行号
function calculateSum(a, b) {
return a + b;
}
const result = calculateSum(10, 20);
console.log(`结果是: ${result}`);

在代码块的第一行以注释形式添加文件名:

语法:

Terminal window
```javascript title="app.js"
const greeting = "Hello, Rapide!";
console.log(greeting);
```

效果:

app.js
const greeting = "Hello, Rapide!";
console.log(greeting);

使用 {行号} 语法高亮特定行:

语法:

Terminal window
```javascript {3,5-7}
function example() {
const a = 1;
const b = 2; // 这行会被高亮
const c = 3;
// 这三行
// 都会
// 被高亮
return a + b + c;
}
```

效果:

Terminal window
function example() {
const a = 1;
const b = 2; // 这行会被高亮
const c = 3;
// 这三行
// 都会
// 被高亮
return a + b + c;
}

使用 insdel 标记代码的增删:

语法:

Terminal window
```javascript ins={3} del={2}
function greet(name) {
return "Hello " + name; // 删除这行
return `Hello, ${name}!`; // 添加这行
}
```

效果:

Terminal window
function greet(name) {
return "Hello " + name; // 删除这行
return `Hello, ${name}!`; // 添加这行
}

更复杂的 Diff 示例:

server.js
const express = require('express');
const port = 3000; // 旧端口
const app = express();
// 新增:环境变量配置
const port = process.env.PORT || 3000;
const host = process.env.HOST || 'localhost';
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});

添加 Terminal 提示符样式:

安装依赖
npm install starlight-theme-rapide
启动开发服务器
npm run dev

代码块右上角自动提供三个功能按钮:

  • 📋 复制按钮 - 一键复制代码到剪贴板
  • ↔️ 换行切换 - 切换代码是否自动换行
  • ⬇️ 下载按钮 - 下载代码为文件(如果有文件名)

这些功能已在配置中启用,无需额外设置!


结合多种特性:

utils/auth.ts
export interface User {
id: string;
name: string;
email: string;
role: 'admin' | 'user'; // 旧的角色定义
}
// 新的角色系统
type Role = 'admin' | 'user' | 'moderator';
export interface User {
id: string;
name: string;
email: string;
role: Role;
permissions: string[];
}
export function checkPermission(user: User, permission: string): boolean {
return user.permissions.includes(permission);
}

使用单个反引号创建行内代码:

语法:

Terminal window
使用 `const` 声明常量,使用 `let` 声明变量。

效果: 使用 const 声明常量,使用 let 声明变量。


这是一个强大的组合,可以在标注中展示代码:



徽章用于标记状态、版本或重要信息。

基本用法:

Terminal window
<Badge text="新功能" />

效果:

新功能

不同样式:

默认 提示 成功 警告 危险

在标题中使用:

Terminal window
## API 文档 <Badge text="v2.0" variant="success" />

效果:


Terminal window
import { Card } from '@astrojs/starlight/components';
<Card title="卡片标题" icon="rocket">
这是卡片的内容。
</Card>

效果:

功能介绍

Rapide 主题提供了出色的视觉体验和丰富的组件支持。

Terminal window
import { Card, CardGrid } from '@astrojs/starlight/components';
<CardGrid>
<Card title="快速" icon="approve-check">
闪电般的构建速度
</Card>
<Card title="美观" icon="star">
现代化的设计
</Card>
<Card title="强大" icon="rocket">
功能丰富
</Card>
</CardGrid>

效果:

快速

闪电般的构建速度,优化的性能表现

美观

现代化的设计,优雅的视觉体验

强大

功能丰富,组件齐全

易用

简单配置,快速上手


选项卡适合展示多个选项或不同语言的代码示例。

语法示例:

导入组件并使用:

Terminal window
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs>
<TabItem label="选项1">
内容1
</TabItem>
<TabItem label="选项2">
内容2
</TabItem>
</Tabs>

效果:

Terminal window
npm install starlight-theme-rapide

用于展示操作流程或教程步骤。

语法示例:

Terminal window
import { Steps } from '@astrojs/starlight/components';
<Steps>
1. 第一步说明
2. 第二步说明
3. 第三步说明
</Steps>

效果:

  1. 安装依赖

    使用你喜欢的包管理器安装依赖

    Terminal window
    npm install starlight-theme-rapide
  2. 配置主题

    astro.config.mjs 中添加 Rapide 主题配置

  3. 创建内容

    src/content/docs/ 目录下创建你的文档文件

  4. 启动开发服务器

    运行开发服务器预览效果

    Terminal window
    npm run dev

用于展示项目结构。

Terminal window
import { FileTree } from '@astrojs/starlight/components';
<FileTree>
- src/
- content/
- docs/
- guides/
- getting-started.md
- syntax-guide.mdx
- index.mdx
- components/
- styles/
- astro.config.mjs
- package.json
</FileTree>

效果:

  • Directorysrc/
    • Directorycontent/
      • Directorydocs/
        • Directoryguides/
          • getting-started.md
          • rapide-syntax-guide.mdx
        • index.mdx
    • Directorycomponents/
      • CustomHeader.astro
    • Directorystyles/
      • custom.css
      • katex.css
  • astro.config.mjs
  • package.json
  • README.md

创建醒目的行动号召按钮。

Terminal window
import { LinkButton } from '@astrojs/starlight/components';
<LinkButton href="https://example.com" variant="primary">
开始使用
</LinkButton>

效果:

访问 Rapide 官网


Rapide 主题完美支持 LaTeX 数学公式(需要配置 remark-math 和 rehype-katex)。

使用单个 $ 包裹:

语法:

Terminal window
爱因斯坦的质能方程:$E = mc^2$

效果: 爱因斯坦的质能方程:E=mc2E = mc^2


使用双 $$ 包裹:

语法:

Terminal window
$$
\frac{d}{dx}\left( \int_{a}^{x} f(u)\,du\right) = f(x)
$$

效果:

ddx(axf(u)du)=f(x)\frac{d}{dx}\left( \int_{a}^{x} f(u)\,du\right) = f(x)

矩阵:

(abcdefghi)\begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix}

方程组:

{x+y=52xy=1\begin{cases} x + y = 5 \\ 2x - y = 1 \end{cases}

积分:

0ex2dx=π2\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}

求和:

n=11n2=π26\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}

下面是一个综合使用多种语法的完整示例:

代码示例

展示各种编程语言的代码片段

标注提示

使用不同类型的标注突出重要信息

数学公式

支持 LaTeX 公式:01x2dx\int_{0}^{1} x^2 dx

交互组件

选项卡、步骤等丰富的交互组件



通过本指南,你应该已经掌握了 Rapide 主题的主要语法:

  • 5种标注类型:note, tip, caution, danger
  • 代码块:支持几乎所有编程语言,自动行号
  • 组件:Badge, Card, Tabs, Steps, FileTree, LinkButton
  • LaTeX 公式:行内和块级数学公式
  • 最佳实践:如何编写高质量文档

现在开始使用 Rapide 创建你的精美文档吧! 🚀