задачи вернулся к кастомной вёрстки. Изначальная идея с ручным созданием и вкладыванием компонентов сработала плохо (slot не получилось передать через options ни в каком виде, т.е. оно передаётся, но не работает) и алгоритм сложный получился, я в итоге переписал с использованием HOC. Получился компонент, который умеет разворачивает некий AST в вёрстку содержащую компоненты и простую разметку с текстом. Есть поддержка default slot, сделать именованные динамические слоты в Svelte оказалось нельзя. Вот код - https://gist.github.com/tenphi/f66b94cf762d396ecc2c6eca1e97c8ad
Как сделать динамические теги в Svelte я не нашел (а можно ли?), поэтому пока много if’ов.
Чтобы получить AST, нужно разумеется написать алгоритм парсинга исходного XML, что в целом простая задача, особенно в браузере.
Ты через конструктор slot не смог передать?
Обсуждают сегодня