# Hobbyka: публикации блога через Codex без установки Официальный сценарий создания и редактирования страниц `https://hobbyka.ru/blog/`. Не устанавливай CLI, MCP или плагины и не меняй инфоблок напрямую. Codex сохраняет отдельный черновик Content Draft API; применяет его только администратор или участник группы «Контент-редакторы» (ID 7) в защищённом предпросмотре. ## Подключение Используй действующий доступ к Content Draft API. Если доступа нет, выполни подключение по разделу «Подключение» инструкции `https://hobbyka.ru/ai/cli/articles.php`: POST `/ai/content-access/request/`, покажи редактору только `verification_uri` и `user_code`, после подтверждения получи токен через `/ai/content-access/token/`. Bearer-токен не показывай, не проси присылать в чат и передавай только по HTTPS на `hobbyka.ru`. ## Подготовка Сначала получи допустимые категории и авторов: `GET https://hobbyka.ru/api/internal/v1/content-drafts/blog-meta` с Bearer-токеном. Не придумывай ID автора или код категории. Для нового поста подготовь `type=blog`, `title`, необязательный `code`, `excerpt`, полный `html`, `cover_image_url`, `category_codes`, необязательный `author_id`, `seo_title`, `seo_description`, `page_title` и `agent`. Если конкретный автор не указан, не выбирай случайного человека: пропусти `author_id` либо передай `null`. API автоматически подставит автора «Редактор» с нейтральной иконкой человека. Это работает и для ранее созданных черновиков без автора. При правке существующей публикации без `author_id` сохраняется её текущий автор; явный `author_id: null` выбирает «Редактор». Некорректный ID автора API отклоняет. Для изменения существующего поста сначала открой точный URL `/blog//`, сохрани подтверждённые факты и передай тот же полный итоговый набор полей плюс `source_url` либо `source_element_id`. API создаст `status=revision` и привяжет черновик к существующей публикации, но не изменит её. Не создавай новый пост вместо revision. Символьный код существующей страницы сохраняется. Если публикацию изменили после создания черновика, применение будет заблокировано — создай свежий черновик. Разметка должна соответствовать реальному шаблону блога. Не добавляй H1, повторный анонс или повторную обложку в `html`: сайт выводит их сам. Разрешены обычные `h2`, `h3`, абзацы, списки, таблицы и ссылки, а также штатные блоки: ```html

Раздел

Текст цитаты.

Описание
Подпись к изображению
``` Используй изображения только с Hobbyka и не дублируй их. Для нового файла сначала создай черновик, затем POST `/ai/content-media/` с JSON `{draft_id,image_base64}`, максимум 8 МБ и 10 мегапикселей, и вставь полученный `image_url` через PATCH. Обложку передавай в `cover_image_url`, остальные картинки — один раз в `html`. Не вставляй скрипты, стили, iframe, формы или внешние изображения. ## Сохранение Для внешних HTTP/HTTPS-ссылок, в том числе `//site.com/...`, используй `target="_blank"` и `rel="nofollow noopener noreferrer"`; API добавляет их автоматически. Относительные ссылки и точные домены `hobbyka.ru`, `www.hobbyka.ru`, `new.hobbyka.ru` не получают автоматический `nofollow`; явно заданный редактором `nofollow` сохраняется. Якоря, `mailto:` и `tel:` не открывают новую вкладку. Упоминание без ссылки оставляй текстом, жирное выделение для ссылки не требуется. Создание: `POST https://hobbyka.ru/api/internal/v1/content-drafts` с `Authorization: Bearer ...`, `Content-Type: application/json; charset=utf-8` и уникальным `Idempotency-Key` длиной 8–128 ASCII-символов. При таймауте повторяй тот же запрос с тем же ключом. Правки черновика: `PATCH /api/internal/v1/content-drafts/{id}`. Проверка: `GET` по тому же адресу. Успешный новый пост имеет `type=blog`, `status=draft`, `operation=create`, строковый `id`, `preview_url`, `published_url=null` и `iblock_element_id=null`. Правка существующего поста имеет `status=revision`, `operation=update`, прежний `source_element_id`, защищённый `preview_url`; опубликованная страница остаётся без изменений до одобрения. Верни пользователю ссылку `preview_url`. Не вызывай `/publish`, не открывай кнопку от имени редактора, не создавай и не меняй `CIBlockElement` напрямую. В предпросмотре новый пост можно опубликовать или сохранить без активации; для существующей страницы кнопка «Применить правки» обновляет её только после ручного подтверждения.