From dc5bac376cc61ffa0cb50ebf7f34b2e71ec2f6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 10 Aug 2026 17:16:54 +0400 Subject: [PATCH] docs: MAN format fix history + instructions (??? admonition, not details/div) --- HISTORY/2026-08-10_man_format_fix.md | 66 ++++++++++++++++++++++++++++ docs/LLM_DOCS_GENERATION.md | 47 +++++++++++++++++++- 2 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 HISTORY/2026-08-10_man_format_fix.md diff --git a/HISTORY/2026-08-10_man_format_fix.md b/HISTORY/2026-08-10_man_format_fix.md new file mode 100644 index 0000000..836bddd --- /dev/null +++ b/HISTORY/2026-08-10_man_format_fix.md @@ -0,0 +1,66 @@ +# MAN Format Fix — 2026-08-10 + +**Проблема:** `service_man` из YAML содержит Markdown (`#`, `##`, `---`, `**`) + HTML (`
`, `"`), но рендерился как сырой текст. Теги `##`, `**`, `---` выводились буквально, не форматируя текст. + +**Корень проблемы:** `md_in_html` расширение mkdocs не обрабатывает Markdown внутри `
` и `
` — всё содержимое выводится как plain text. + +**Решение:** использовать **нативный mkdocs admonition** `??? note` вместо HTML-тегов. + +### Было (сломано) + +```go +b.WriteString("
\nСправка (MAN)\n\n") +b.WriteString(htmlToMarkdown(man)) +b.WriteString("\n\n
\n") +``` + +```html + +# Инструкция --- ## 1. Общая информация **текст** + +``` + +### Стало (работает) + +```go +b.WriteString("??? note \"Справка (MAN)\"\n\n") +md := htmlToMarkdown(man) +for _, line := range strings.Split(md, "\n") { + b.WriteString(" " + line + "\n") +} +b.WriteString("\n") +``` + +```markdown +??? note "Справка (MAN)" + + # Инструкция по развертыванию + + --- + ## 1. Общая информация + **текст** +``` + +```html + +
+ Справка (MAN) +

Инструкция по развертыванию

+
+

1. Общая информация

+

текст

+
+``` + +### Ключевые требования `???` admonition + +1. **Пустая строка** после `??? note "Заголовок"` — ОБЯЗАТЕЛЬНА +2. **Все строки контента** с отступом ровно 4 пробела — включая пустые строки +3. `pymdownx.details` должен быть в `markdown_extensions` (уже есть) + +### Затронутые файлы + +| Файл | Изменение | +|------|-----------| +| `writers/writers.go:buildManualPage()` | `??? note` вместо `
` | +| `extra.css` | Убран `.man-content` CSS (больше не нужен) | diff --git a/docs/LLM_DOCS_GENERATION.md b/docs/LLM_DOCS_GENERATION.md index 1d8e675..c74d51d 100644 --- a/docs/LLM_DOCS_GENERATION.md +++ b/docs/LLM_DOCS_GENERATION.md @@ -31,7 +31,7 @@ S3 (terraform-registry) ── хостинг через registry.kube5s.ru ` и HTML-entities. + +### Конвертация: `htmlToMarkdown()` + +```go +// 1.
→ \n +// 2.

/

/

→ # / ## / ### +// 3. / → **...** +// 4. / → *...* +// 5. → `...` +// 6. → [...](...) +// 7.
  • → - ... +// 8. Strip remaining HTML tags +// 9. Unescape HTML entities (" → ") +// 10. Collapse 3+ blank lines → 2 +``` + +### Рендеринг: `??? note` admonition (НЕ `
    `!) + +**Важно:** `
    ` и `
    ` НЕ работают в mkdocs — Markdown внутри них не рендерится. + +Вместо этого используется **нативный mkdocs admonition** `??? note`: + +```markdown +??? note "Справка (MAN)" + + # Инструкция по развертыванию + + --- + ## 1. Общая информация + Текст параграфа. + + - **bold** — описание + - `code` — пример +``` + +**Критические требования:** +1. Пустая строка после `??? note "..."` — обязательно +2. Все строки контента с отступом ровно 4 пробела — включая пустые +3. `pymdownx.details` в `markdown_extensions` (уже есть) + +Результат: `
    Справка (MAN)

    ...


    ...

    ...
    ` + ## Принципы дизайна (CSS) - `max-width: 1800px` — лёгкое ограничение (на 2560px поля ~380px)