代码高亮演示

代码高亮演示

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日