Шпаргалка по Markdown

Mephisto markdownсправочникдемо

Эта статья показывает все поддерживаемые возможности форматирования. Включи оглавление (toc: true) и убедись, что всё работает как надо.

Базовый текст

Обычный абзац. Жирный текст, курсив, зачёркнутый, и inline code.

Можно комбинировать: жирный с кодом внутри или курсив со зачёркнутым внутри.

Горизонтальная черта:


Заголовки разных уровней

Уровень H3

Уровень H4

Уровень H5 (редко используется)

Ссылки и автоссылки

Обычная ссылка на главную.

Автоссылка (GFM): https://astro.build

Списки

Маркированный:

  • Первый элемент
  • Второй элемент
    • Вложенный элемент
    • Ещё один
  • Третий элемент

Нумерованный:

  1. Первый шаг
  2. Второй шаг
  3. Третий шаг
    1. Подшаг A
    2. Подшаг B

Task list

  • Написать BRIEF.md
  • Создать проект на Astro
  • Настроить подсветку кода
  • Написать больше статей
  • Настроить деплой

Код

Inline code

Функция getCollection() возвращает массив записей. Переменная $MY_VAR — это переменная окружения.

Блок кода — Python

from dataclasses import dataclass
from typing import Optional

@dataclass
class Article:
    title: str
    slug: str
    date: str
    draft: bool = False
    description: Optional[str] = None

def get_published(articles: list[Article]) -> list[Article]:
    return [a for a in articles if not a.draft]

# Пример использования
articles = [
    Article("Привет", "hello", "2026-05-17"),
    Article("Черновик", "draft", "2026-05-17", draft=True),
]
published = get_published(articles)
print(f"Опубликовано: {len(published)}")

Блок кода — TypeScript

interface Frontmatter {
  title: string;
  date: Date;
  tags?: string[];
  draft?: boolean;
}

async function loadArticles(dir: string): Promise<Frontmatter[]> {
  const files = await fs.readdir(dir);
  return Promise.all(
    files
      .filter((f) => f.endsWith('.md'))
      .map(async (f) => {
        const content = await fs.readFile(path.join(dir, f), 'utf-8');
        return parseFrontmatter(content);
      })
  );
}

Блок кода — Rust

use std::collections::HashMap;

#[derive(Debug, Clone)]
struct Article {
    title: String,
    slug: String,
    draft: bool,
}

impl Article {
    fn new(title: &str, slug: &str) -> Self {
        Self {
            title: title.to_string(),
            slug: slug.to_string(),
            draft: false,
        }
    }
}

fn main() {
    let articles: Vec<Article> = vec![
        Article::new("Привет мир", "hello-world"),
        Article::new("О Rust", "about-rust"),
    ];

    let published: Vec<&Article> = articles
        .iter()
        .filter(|a| !a.draft)
        .collect();

    println!("Опубликовано: {}", published.len());
}

Блок кода — CSS

:root {
  --bg: #fafafa;
  --text: #222;
  --link: #555;
}

[data-theme='dark'] {
  --bg: #1a1a1a;
  --text: #e6e6e6;
}

body {
  font-family: Georgia, serif;
  line-height: 1.75;
  color: var(--text);
  background: var(--bg);
}

Таблицы

ЯзыкПарадигмаТипизацияГод создания
PythonМультиДинамическая1991
TypeScriptМультиСтатическая2012
RustСистемныйСтатическая2015
GoПроцедурныйСтатическая2009
HaskellФункциональныйСтатическая1990

Таблица с выравниванием:

ЛевыйЦентрПравый
тексттексттекст
длинная строкаx42

Цитаты

Обычная цитата:

Простота — это высшая степень сложности.

— Леонардо да Винчи

Вложенная цитата:

Внешняя цитата.

Внутренняя вложенная цитата.

Снова внешняя.

Callout-блоки

NOTE

Это информационный блок. Используется для дополнительных сведений, которые полезны, но не критичны.

TIP

Совет: используй toc: true в frontmatter для длинных статей — появится оглавление.

WARNING

Внимание: черновики (draft: true) не отображаются в продакшн-сборке. Не забудь убрать флаг перед публикацией.

IMPORTANT

Важно: все статьи должны иметь поля title и date в frontmatter — иначе сборка упадёт.

CAUTION

Осторожно: не удаляй .astro директорию вручную — это кэш типов. Astro пересоздаст её автоматически.

Математика

Inline math

Формула площади круга: A=πr2A = \pi r^2, где rr — радиус.

Уравнение Эйлера: eiπ+1=0e^{i\pi} + 1 = 0 — одно из красивейших в математике.

Квадратное уравнение ax2+bx+c=0ax^2 + bx + c = 0 имеет корни x=b±b24ac2ax = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}.

Block math

Интеграл Гаусса:

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

Формула Байеса:

P(AB)=P(BA)P(A)P(B)P(A \mid B) = \frac{P(B \mid A) \cdot P(A)}{P(B)}

Разложение Тейлора:

f(x)=n=0f(n)(a)n!(xa)nf(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!}(x-a)^n

Матрица и определитель:

det(abcd)=adbc\det \begin{pmatrix} a & b \\ c & d \end{pmatrix} = ad - bc

Изображения

Если alt-текст не пустой, изображение оборачивается в <figure> с <figcaption>:

Заглушка изображения — вы увидите figcaption под этим текстом
Заглушка изображения — вы увидите figcaption под этим текстом

Изображение без alt-текста (без figcaption):

Сноски

Markdown поддерживает сноски1 в стиле GFM. Их удобно использовать для источников2 или дополнительных пояснений3.

Специальные символы

HTML-сущности: &, <, >, ©, —, –, …

Юникод прямо в тексте: → ← ↑ ↓ • ★ ♦ ✓ ✗


Конец шпаргалки. Все возможности работают!

Footnotes

  1. Это первая сноска. Коротко и ясно.

  2. Astro Documentation — отличная документация с примерами.

  3. Сноски могут быть длинными. Они рендерятся в конце документа в секции <footer class="footnotes">. Переход туда и обратно работает через якоря.