代码高亮演示
代码高亮演示
PowerWiki 使用 highlight.js 提供强大的代码高亮功能,支持 100+ 种编程语言。
JavaScript
// 异步函数示例
async function fetchUserData(userId) {
try {
const response = await fetch(`/api/users/${userId}`);
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching user:', error);
throw error;
}
}
// 使用 Promise
fetchUserData(123)
.then(user => console.log(user))
.catch(err => console.error(err));
Python
# 装饰器示例
def timer_decorator(func):
import time
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"执行时间: {end - start:.2f}秒")
return result
return wrapper
@timer_decorator
def slow_function():
import time
time.sleep(2)
return "完成"
# 列表推导式
numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers if x % 2 == 0]
print(squares) # [4, 16]
Java
// 泛型类示例
public class Container<T> {
private T value;
public Container(T value) {
this.value = value;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
// 使用示例
Container<String> stringContainer = new Container<>("Hello");
Container<Integer> intContainer = new Container<>(42);
Go
// 并发示例
package main
import (
"fmt"
"sync"
)
func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
fmt.Println("worker", id, "started job", j)
results <- j * 2
}
}
func main() {
jobs := make(chan int, 100)
results := make(chan int, 100)
// 启动 3 个 worker
for w := 1; w <= 3; w++ {
go worker(w, jobs, results)
}
// 发送任务
for j := 1; j <= 9; j++ {
jobs <- j
}
close(jobs)
// 收集结果
for a := 1; a <= 9; a++ {
<-results
}
}
SQL
-- 复杂查询示例
SELECT
u.id,
u.name,
COUNT(o.id) as order_count,
SUM(o.total) as total_spent
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 0
ORDER BY total_spent DESC
LIMIT 10;
HTML/CSS
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PowerWiki 演示</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.container {
background: #f5f5f5;
border-radius: 8px;
padding: 20px;
}
</style>
</head>
<body>
<div class="container">
<h1>欢迎使用 PowerWiki</h1>
<p>这是一个现代化的知识库系统</p>
</div>
</body>
</html>
Bash
#!/bin/bash
# 自动部署脚本
set -e
echo "开始部署 PowerWiki..."
# 检查 Docker
if ! command -v docker &> /dev/null; then
echo "Docker 未安装"
exit 1
fi
# 拉取最新镜像
docker pull sayunchuan/powerwiki:latest
# 停止旧容器
docker stop powerwiki || true
docker rm powerwiki || true
# 启动新容器
docker run -d \
--name powerwiki \
-p 3150:3150 \
-v $(pwd)/config.json:/app/config.json \
-v powerwiki_data:/app/data \
sayunchuan/powerwiki:latest
echo "部署完成!访问 http://localhost:3150"
JSON
{
"gitRepo": "https://github.com/your-username/your-wiki-repo.git",
"repoBranch": "main",
"mdPath": "",
"port": 3150,
"siteTitle": "My Knowledge Base",
"siteDescription": "A modern wiki system",
"autoSyncInterval": 180000,
"pages": {
"home": "README.md",
"about": "ABOUT.md"
},
"features": {
"syntaxHighlight": true,
"autoTOC": true,
"viewStats": true,
"seoOptimized": true
}
}
YAML
# Docker Compose 配置
version: '3.8'
services:
powerwiki:
image: sayunchuan/powerwiki:latest
container_name: powerwiki
ports:
- "3150:3150"
environment:
- NODE_ENV=production
- DATA_DIR=/app/data
- GIT_CACHE_DIR=/app/cache
- LANG=zh-CN
volumes:
- ./config.json:/app/config.json:ro
- powerwiki_data:/app/data
- powerwiki_cache:/app/cache
restart: unless-stopped
networks:
- powerwiki-net
volumes:
powerwiki_data:
powerwiki_cache:
networks:
powerwiki-net:
driver: bridge
TypeScript
// 接口和类型定义
interface WikiConfig {
gitRepo: string;
repoBranch: string;
port: number;
siteTitle: string;
autoSyncInterval: number;
}
interface Article {
id: string;
title: string;
content: string;
author: string;
createdAt: Date;
updatedAt: Date;
tags: string[];
}
// 泛型函数
function createArticle<T extends Article>(data: T): T {
return {
...data,
createdAt: new Date(),
updatedAt: new Date()
};
}
// 使用示例
const article = createArticle({
id: '1',
title: 'PowerWiki 介绍',
content: '...',
author: 'PowerWiki Team',
tags: ['wiki', 'markdown']
} as Article);
Markdown
# Markdown 语法演示
## 标题
### 三级标题
#### 四级标题
## 列表
- 项目 1
- 项目 2
- 子项目 2.1
- 子项目 2.2
## 代码块
\`\`\`javascript
console.log('Hello, World!');
\`\`\`
## 表格
| 列 1 | 列 2 | 列 3 |
|------|------|------|
| 数据 | 数据 | 数据 |
## 引用
> 这是一个引用
> 可以多行
提示: 所有代码块都支持复制功能,点击代码块右上角的复制按钮即可。
更新时间:2026年2月24日