html2wp / Документация html2wp / Плагин
Плагин для Claude Code и Codex
Как установить плагин html2wp в Claude Code или Codex и сконвертировать с его помощью сайт в тему WordPress, шаг за шагом, вплоть до проверки готовых страниц. Конвертируете в настольном приложении? Шаги для приложения описаны в его собственной документации.
Когда нужен лицензионный ключ
Чтобы попробовать, ключ не нужен. Бесплатный тариф доступен всем и даёт три конвертации до пяти страниц каждая и пять повторных запусков. Оба числа считаются на IP-адрес. Лицензия нужна для работы на клиентов, для сайтов больше пяти страниц и для магазинов WooCommerce. Её вы покупаете на странице с ценами, а ключ приходит на почту. Как устроена покупка.
Установка
Плагин находится в двух репозиториях на GitHub, один для Claude Code и один для Codex. В обоих одинаковое содержимое и одинаковый номер версии. Различаются они только тем, как их загружает каждый инструмент. Установите тот, который относится к вашему инструменту, потому что другой не загрузится.
| Инструмент | Репозиторий |
|---|---|
| Claude Code | iOSDevSK/html2wp-cc-plugin |
| Codex | iOSDevSK/html2wp-codex-plugin |
Переключитесь на свой инструмент и выполните обе команды одну за другой:
/plugin marketplace add iOSDevSK/html2wp-cc-plugin/plugin install html2wp@html2wpПервая команда добавляет каталог плагинов (marketplace) с GitHub. Затем вторая устанавливает из него html2wp. Codex нужен собственный репозиторий, потому что он находит плагины через файл .agents/plugins/marketplace.json, а в репозитории для Claude Code этого файла нет.
Обновления
Команда обновления в каждом инструменте называется по-своему. В Codex это upgrade, в Claude Code это update:
/plugin marketplace update html2wpВключите автоматические обновления в Claude Code
Для сторонних каталогов Claude Code не включает автоматические обновления. Без них новая версия плагина приходит только тогда, когда вы её запросите, а некоторые версии исправляют ошибки безопасности. Чтобы включить их, откройте /plugin, выберите html2wp в разделе Marketplaces и включите auto-update.
Чтобы увидеть установленную версию, выполните codex plugin list в Codex. В Claude Code откройте /plugin → Marketplaces → html2wp.
Если после обновления версия в Codex не изменилась, у Codex сохранена старая копия. Удалите её и установите плагин заново:
rm -rf ~/.codex/plugins/cache/html2wpcodex plugin marketplace upgrade && codex plugin add html2wp@html2wpЕсли и это не помогло, у Codex может быть ещё одна, более старая копия после ручной установки. Команда codex plugin marketplace list выводит все каталоги. Если вы видите там html2wp@<other-name>, удалите её командой codex plugin remove html2wp@<that-name>.
Основная работа идёт в сервисе html2wp, а сервис обновляется сам, поэтому следующая конвертация уже работает на новой версии. Обновлять нужно только то, что работает на вашем компьютере: проверки, скрипты и фильтр исходящих данных. Что изменилось в каждой версии, видно в истории коммитов на GitHub.
Требования
| Node.js | версия 20 или новее |
|---|---|
| Python 3 | с пакетами Playwright (chromium) и Pillow |
| Docker | вместе с docker compose, в котором работает тестовый WordPress |
| Другие инструменты | php-cli, jq, curl, bash, tar |
| Целевой сайт | WordPress 6.6 или новее |
Проверять это самому не нужно. Когда вы запускаете конвертацию, плагин сначала проверяет ваш компьютер и перечисляет, чего не хватает:
Node.js ok v22.14.0 Python ok 3.12.4 Playwright MISSING mirroring, prerendering and every screenshot Docker NOT RUNNING installed, but the daemon is not up
Пакеты, которые устанавливаются только в вашу папку пользователя, например Playwright или браузер chromium, плагин предлагает установить сам. Перед каждой командой он спрашивает. О том, что меняет всю систему, например Docker Desktop или более новый Node.js, он только сообщает и ждёт, пока вы установите это сами.
Если хотите установить пакеты Python вручную:
python3 -m pip install playwright pillow && python3 -m playwright install chromiumКакую модель выбрать
Во время конвертации ИИ принимает много решений. Например, какая страница главная, почему не прошла проверка или заметит ли клиент вообще разницу между двумя скриншотами. Поэтому выбор модели влияет на результат сильнее любой другой настройки.
| Инструмент | Рекомендуемая модель |
|---|---|
| Claude Code | Opus 5, с Fable 5 в роли советника. |
| Codex | Luna с уровнем рассуждения xhigh. |
Более дешёвый вариант
Codex с Luna на xhigh стоит меньше, а результаты у него выше среднего. Если для вас важна стоимость конвертации, выберите эту связку.
В Claude Code работу выполняет Opus 5, а с Fable 5 он советуется по важным решениям, именно там конвертация чаще всего и ошибается.
Лицензионный ключ
На бесплатном тарифе ключ не нужен, этот раздел можно пропустить. Если у вас есть лицензия, сохраните ключ на компьютере до первой конвертации. Это делается один раз, из любой папки:
mkdir -p ~/.config/html2wpprintf '%s' 'YOUR-KEY' > ~/.config/html2wp/licencechmod 600 ~/.config/html2wp/licenceКлюч можно также передать в переменной окружения H2WP_KEY, она важнее файла. Файл надёжнее, потому что тогда ключ не попадает в историю терминала.
В файл записывается лицензионный ключ html2wp, который вы получаете при покупке Pro. Ключ Visual Edit Pro туда не записывается. Его вы вводите в плагине Visual Edit на сайте, который правите, и для конвертаций он не работает.
Сохраните ключ до запуска конвертации
В самом начале плагин определяет, сколько страниц вам разрешено конвертировать. Если ключа ещё нет, он планирует конвертацию по бесплатному лимиту в пять страниц. Ключ, добавленный во время конвертации, этого не меняет.
Чтобы узнать, действует ли ключ, для чего он подходит и до какого числа, выполните npx html2wp-license YOUR-KEY. Что означает результат, объясняет проверка ключа на странице лицензий. Что входит в лицензию и как её купить, описано на странице о лицензиях.
Конвертация проекта
Откройте терминал в папке проекта, который хотите сконвертировать, и запустите там своего агента:
git clone https://github.com/YOU/YOUR-LOVABLE-PROJECTcd YOUR-LOVABLE-PROJECTcodexЕсли вы работаете в Claude Code, в последней строке введите claude вместо codex.
Затем дайте агенту одну команду:
/html2wp:html2wp convert this projectВот и всё. Запускать npm install или npm run build не нужно, настраивать тоже ничего не нужно. Проекты из Bolt, v0, shadcn или экспорт Next.js конвертируются так же. В Claude Code можно также ввести просто /html2wp:html2wp или попросить Codex использовать html2wp. Тогда плагин спросит, что конвертировать.
Первые минуты конвертации
> convert this project
Checking this machine first…
Node.js ok v22.14.0
Playwright MISSING
Two Python packages are missing. Shall I install them? (they go in your
user directory, no root)
> yes
… installed. Building the project, then prerendering it.
7 routes found: /, /about, /pricing, /blog, /blog/launch, /contact, /faq
Decided: /blog is the listing, /blog/launch an article, the rest are pages.
Written to the manifest; carrying on.
В последних строках плагин записал, как он распределил страницы: /blog служит списком статей, /blog/launch статьёй, а остальные обычными страницами. В конце проверьте это решение на готовом сайте.
Другие входные данные
Команда convert this project конвертирует папку, в которой вы находитесь. Если файлы лежат в другом месте, укажите путь к ним, например convert ./dist.
| Что у вас есть | Что вводить |
|---|---|
| Проект, из которого собирается сайт: Lovable, Bolt, v0, Vite, Astro, экспорт Next.js | convert this project |
Папка с готовыми файлами .html, изображениями и стилями | convert ./folder-name |
Входные данные всегда должны быть на вашем диске. Адрес работающего сайта плагин не конвертирует. Ему нужны файлы, из которых собран сайт, а не то, что показывает браузер.
Как конвертируется проект Lovable
Приложение Lovable написано на React. Его index.html содержит только пустой элемент и скрипт, а страница оживает только в браузере. Поэтому плагин сначала собирает проект, открывает его в настоящем браузере и сохраняет каждую страницу как готовый HTML. Он также захватывает контент, который появляется только после работы скриптов, например открытые аккордеоны или выпадающие меню. Затем из этих страниц он делает тему. Подробности в руководстве по переносу Lovable на WordPress.
Что он решает за вас
Какая страница какая
Сильнее всего на результат влияет одно решение: какая страница главная, какая служит списком статей, какие являются статьями, а какие товарами. Плагин определяет это по коду страниц, записывает и продолжает, не спрашивая. Он останавливается, только если не может решить. Например, когда на сайте больше страниц, чем позволяет ваш лимит, или когда две страницы выглядят как одна и та же.
Если он ошибся, исправить это недорого. Вы исправляете распределение и запускаете конвертацию снова. Это повторный запуск, и в лимит конвертаций он не засчитывается.
Дальше он в основном работает сам
Flash занимает около получаса, Full около часа, в зависимости от числа страниц и скорости вашего компьютера. Тем временем плагин собирает сайт, сравнивает его с оригиналом и отправляет в сервис html2wp на конвертацию. После этого он устанавливает готовую тему во временный WordPress в Docker на вашем компьютере и тестирует её там.
Проверка, которую нельзя пропустить
В конце плагин показывает каждую страницу рядом с оригиналом на одном изображении. Посмотрите на каждое изображение и скажите, что видите.
Почему страницы должен проверить человек
Автоматические проверки сравнивают числа, поэтому пропускают и ошибки, которые человек заметил бы сразу. В одной конвертации не хватало целой секции ниже по странице, но сравнение показало разницу всего 0,4 %, и проверка прошла. К этому моменту ZIP с темой уже готов. Эта проверка и решает, можно ли его сдавать.
Что вы получаете
- Тему в виде ZIP-файла. Вы загружаете её в WordPress в разделе «Внешний вид → Темы → Добавить новую тему → Загрузить тему». Сломанную тему плагин вообще не собирает: например, если в PHP была синтаксическая ошибка, не хватало контента, скриншот темы был неправильного размера или в магазине нельзя было ничего купить.
- Отчёт
CONVERSION-REPORT.mdв той же папке, что и ZIP. В нём перечислены сконвертированные страницы, подключённые меню, всё, что вы нашли при проверке, каждое предупреждение конвертации и то, что ещё осталось сделать. - Ссылку на Visual Edit Lite, бесплатный редактор для правки кликом. Редактор не входит в тему, и тема работает без него. Visual Edit Pro продаётся по отдельной платной лицензии.
Тема самостоятельная. Страницы, блог, формы, меню, SEO и редиректы входят в её код и работают без плагинов. Код состоит из читаемых PHP, CSS и JavaScript. Он принадлежит вам и не привязан к нам. Тема никуда не подключается. Как править её кликами, описано в разделе о Visual Edit в документации к приложению.
Что покидает ваш компьютер
Работу с браузером выполняет ваш компьютер: сборку страниц, сравнение скриншотов и запуск временного WordPress в Docker для финальных проверок. Саму тему делает сервис html2wp. Поэтому плагин отправляет ему собранный сайт и получает обратно тему.
Проверки темы идут на вашей стороне, и сервис не видит их результатов. Поэтому в конце плагин отправляет их ему. Это обязательно: сервис не начинает следующую конвертацию, пока предыдущая не отправила результаты.
- Что отправляется: названия проверок, прошли ли они, число страниц, худший процент совпадения и короткие имена страниц, которые не прошли, например
aboutилиpricing. - Что не отправляется: адрес или домен сайта, код, тексты, скриншоты, пути к файлам, лицензионный ключ и название сайта. Плагин отправляет только заранее заданные поля и ничего больше.
- Проверьте сами: команда
send-verdicts.sh <workspace> --dry-runвыводит точно то, что было бы отправлено, но ничего не отправляет. Это один короткий скрипт, который можно прочитать.
Других данных плагин не отправляет, а готовая тема не отправляет вообще ничего. Полное описание, включая сроки хранения данных, есть на странице о конфиденциальности.
Сообщить об ошибке
Если ошибается сам конвертер, сообщите об этом такой командой:
curl -sS -X POST https://api.html2wp.dev/v1/report \
-H 'content-type: application/json' \
-d '{"subject":"what went wrong","body":"what you saw","evidence":"page keys, warnings"}'Каждое сообщение читает человек. Исправление затем попадает в сервис, так что оно помогает всем пользователям.
Об ошибках безопасности сообщайте иначе
Не этой командой и не через issue на GitHub. Порядок действий описан на странице о безопасности.