Таблицы и код
Эта страница демонстрирует различные типы таблиц и блоков кода.
Простые таблицы
Базовая таблица
| Название | Описание | Статус |
|---|---|---|
| Проект A | Описание проекта A | ✅ Активный |
| Проект B | Описание проекта B | 🚧 В разработке |
| Проект C | Описание проекта C | ❌ Приостановлен |
Таблица с выравниванием
| Левый | Центр | Правый | Число |
|---|---|---|---|
| Текст слева | Центрированный | Справа | 100 |
| Длинный текст слева | Короткий | Текст | 1,234 |
| A | B | C | 5.67 |
Сложные таблицы
Таблица с различными типами контента
| Компонент | Код | Описание | Пример |
|---|---|---|---|
| Button | <Button /> | Базовая кнопка | Пример |
| Input | <Input type="text" /> | Поле ввода | Важно |
| Select | <Select options={[]} /> | Выпадающий список | Опционально |
| Checkbox | <Checkbox checked /> | Флажок |
Таблица технических характеристик
| Характеристика | Значение | Единица измерения | Примечание |
|---|---|---|---|
| Размер | 1024 | MB | Максимальный размер файла |
| Скорость | 150 | MB/s | Скорость передачи данных |
| Латенция | 5 | ms | Средняя задержка |
| Пропускная способность | 10 | Gbps | Максимальная пропускная способность |
| Температура | 45-85 | °C | Рабочий диапазон температур |
Блоки кода
Простой код без подсветки синтаксиса
Это простой блок кода
без подсветки синтаксиса.
Он отображается как есть.
JavaScript код
// Функция для вычисления факториала
function factorial(n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
// Пример использования
const result = factorial(5);
console.log(`Факториал 5 = ${result}`);
// Асинхронная функция
async function fetchData(url) {
try {
const response = await fetch(url);
const data = await response.json();
return data;
} catch (error) {
console.error('Ошибка при загрузке данных:', error);
throw error;
}
}
Python код
# Класс для работы с пользователями
class User:
def __init__(self, name, email):
self.name = name
self.email = email
self.active = True
def __str__(self):
return f"User(name='{self.name}', email='{self.email}')"
def deactivate(self):
"""Деактивировать пользователя"""
self.active = False
print(f"Пользователь {self.name} деактивирован")
# Создание и использование
user = User("Иван Иванов", "ivan@example.com")
print(user)
user.deactivate()
# Список пользователей
users = [
User("Петр Петров", "petr@example.com"),
User("Мария Сидорова", "maria@example.com"),
User("Алексей Смирнов", "alexey@example.com")
]
# Фильтрация активных пользователей
active_users = [user for user in users if user.active]
print(f"Активных пользователей: {len(active_users)}")
JSON конфигурация
{
"name": "my-project",
"version": "1.0.0",
"description": "Описание моего проекта",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "webpack --mode production"
},
"dependencies": {
"express": "^4.18.0",
"mongoose": "^6.5.0",
"jsonwebtoken": "^8.5.1"
},
"devDependencies": {
"nodemon": "^2.0.19",
"jest": "^28.1.3",
"webpack": "^5.74.0"
},
"author": "Автор",
"license": "MIT"
}
SQL запросы
-- Создание таблицы пользователей
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Создание индекса для быстрого поиска по email
CREATE INDEX idx_users_email ON users(email);
-- Вставка данных
INSERT INTO users (name, email) VALUES
('Иван Иванов', 'ivan@example.com'),
('Петр Петров', 'petr@example.com'),
('Мария Сидорова', 'maria@example.com');
-- Сложный запрос с JOIN
SELECT
u.name,
u.email,
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 >= '2023-01-01'
GROUP BY u.id, u.name, u.email
HAVING COUNT(o.id) > 0
ORDER BY total_spent DESC
LIMIT 10;
Bash скрипты
#!/bin/bash
# Скрипт для автоматического деплоя
set -e
PROJECT_DIR="/var/www/myproject"
BACKUP_DIR="/var/backups/myproject"
DATE=$(date +%Y%m%d_%H%M%S)
echo "Начинаем деплой в $DATE"
# Создаем бэкап
echo "Создание бэкапа..."
if [ -d "$PROJECT_DIR" ]; then
sudo cp -r "$PROJECT_DIR" "$BACKUP_DIR/backup_$DATE"
echo "Бэкап создан: $BACKUP_DIR/backup_$DATE"
fi
# Обновляем код
echo "Обновление кода..."
cd "$PROJECT_DIR"
git pull origin main
# Устанавливаем зависимости
echo "Установка зависимостей..."
npm ci --production
# Сборка проекта
echo "Сборка проекта..."
npm run build
# Перезапуск сервиса
echo "Перезапуск сервиса..."
sudo systemctl restart myproject
echo "Деплой завершен успешно!"
Код с выделенными строками
JavaScript с выделением
function calculateSum(numbers) {
let sum = 0; // Эта строка выделена
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] > 0) { // Эти строки
sum += numbers[i]; // также
} // выделены
}
return sum;
}
Python с выделением изменений
def process_data(data):
result = []
for item in data: # Добавлена валидация
if validate_item(item): # Новая проверка
result.append(transform_item(item))
# Сортировка результата
return sorted(result, key=lambda x: x.priority) # Изменена логика сортировки
Инлайн код в таблицах
| Функция | Синтаксис | Описание |
|---|---|---|
| Map | array.map(fn) | Применяет функцию к каждому элементу |
| Filter | array.filter(fn) | Фильтрует элементы по условию |
| Reduce | array.reduce(fn, initial) | Сворачивает массив в одно значение |
| Find | array.find(fn) | Находит первый подходящий элемент |
| Some | array.some(fn) | Проверяет наличие подходящих элементов |
| Every | array.every(fn) | Проверяет соответствие всех элементов |
Код в адмонишенах
Полезный совет
Используйте console.log() для отладки:
function debugFunction(data) {
console.log('Input data:', data);
const result = processData(data);
console.log('Result:', result);
return result;
}
Внимание
Избегайте использования eval():
// ❌ Плохо - небезопасно
const result = eval(userInput);
// ✅ Хорошо - безопасно
const result = JSON.parse(userInput);
Многоязычные примеры
Один алгоритм на разных языках
JavaScript
function quickSort(arr) {
if (arr.length <= 1) return arr;
const pivot = arr[Math.floor(arr.length / 2)];
const left = arr.filter(x => x < pivot);
const middle = arr.filter(x => x === pivot);
const right = arr.filter(x => x > pivot);
return [...quickSort(left), ...middle, ...quickSort(right)];
}
Python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
Java
public static int[] quickSort(int[] arr, int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
return arr;
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = (low - 1);
for (int j = low; j < high; j++) {
if (arr[j] <= pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}