Size: a a a

2020 May 23

AE

Alexandr Emelyanov in Kotlin JVM
Quantum Harmonizer
слушайте, а для kotlinx.html не придумали превью?
В идее? Звучит как неплохая таска
источник

BV

Boris Vanin in Kotlin JVM
Только непонятно как это должно работать
источник

BV

Boris Vanin in Kotlin JVM
Если бы файлы .html.kts ещё как-то можно, а в общем случае.. Хрен знает
источник

AE

Alexandr Emelyanov in Kotlin JVM
Вот да
источник

AE

Alexandr Emelyanov in Kotlin JVM
Вообще в следах разработки даже для голого html превью нет, а тут ещё фреймворк запустить надо
источник

AE

Alexandr Emelyanov in Kotlin JVM
Ни для одного веб фреймворка тоже нет превью
источник

AE

Alexandr Emelyanov in Kotlin JVM
Для этого есть браузер)
источник

AN

Alexander Nozik in Kotlin JVM
Boris Vanin
Только непонятно как это должно работать
Ничего сложного. Можно брать некоторую функцию, которая рендерит html и просто сделать контекст, который ее в html отображает. Другое дело, что будет рендерится только вот эта часть без внешнего контекста, а ценность тогда сильно ограничена.
источник

BV

Boris Vanin in Kotlin JVM
Alexander Nozik
Ничего сложного. Можно брать некоторую функцию, которая рендерит html и просто сделать контекст, который ее в html отображает. Другое дело, что будет рендерится только вот эта часть без внешнего контекста, а ценность тогда сильно ограничена.
ну, это в общем случае тоже невозможно, потому что у функции есть параметры, контекст (ресивер) и тд
источник

AN

Alexander Nozik in Kotlin JVM
Boris Vanin
ну, это в общем случае тоже невозможно, потому что у функции есть параметры, контекст (ресивер) и тд
Ну да, контекст, который не поднимешь без запуска программы
источник

BV

Boris Vanin in Kotlin JVM
я просто делаю похожую штуку в плагине и там всё очень непросто, более того для нормального рендера хтмл-а нужно привлекать что-то больше чем свинг
источник

BV

Boris Vanin in Kotlin JVM
для рендера маркдауна например идея использует жфх вроде или типа того
источник

AN

Alexander Nozik in Kotlin JVM
Boris Vanin
для рендера маркдауна например идея использует жфх вроде или типа того
там просто бразузер FX-овый и то опционально
источник

AN

Alexander Nozik in Kotlin JVM
Отрендерить не проблема. Проблема сделать какой-то разумный захват контекста. В общем случае это невозможно
источник

AN

Alexander Nozik in Kotlin JVM
К примеру есть внешние css, то они известны становятся даже не при сборке, а при запуске
источник

i

iseki in Kotlin JVM
kotlin saikou!
источник

AM

Andrew Mikhaylov in Kotlin JVM
Boris Vanin
ну, это в общем случае тоже невозможно, потому что у функции есть параметры, контекст (ресивер) и тд
В компоузе, который для андроида, это порешали просто -- можно повесить превьюшную аннотацию на функцию без параметров, и вызов вот этой функции можно отрендерить себе в идее на отдельной панельке. Тут, очевидно, можно сделать похожее, только функция должна соответствующий ресивер иметь.
Ну и да, конечно, вебвьюшка нужна. И, возможно, какие-то дополнительные параметры а аннотации вроде того, откуда статику по относительным путям забирать.
источник

AN

Alexander Nozik in Kotlin JVM
Andrew Mikhaylov
В компоузе, который для андроида, это порешали просто -- можно повесить превьюшную аннотацию на функцию без параметров, и вызов вот этой функции можно отрендерить себе в идее на отдельной панельке. Тут, очевидно, можно сделать похожее, только функция должна соответствующий ресивер иметь.
Ну и да, конечно, вебвьюшка нужна. И, возможно, какие-то дополнительные параметры а аннотации вроде того, откуда статику по относительным путям забирать.
Я примерно про это и говорил. Но на самом деле смысл такой штуки весьма ограниченный. Потому что кроме параметров важны всякие элементы контекста типа подключенных стилей, да и от данных не уйдешь
источник

AM

Andrew Mikhaylov in Kotlin JVM
Alexander Nozik
Я примерно про это и говорил. Но на самом деле смысл такой штуки весьма ограниченный. Потому что кроме параметров важны всякие элементы контекста типа подключенных стилей, да и от данных не уйдешь
Ну да, если рендерится не целый хтмл, а только кусок, будет тяжко. Но для таких случаев никто не мешает в "тестовую" функцию с аннноташкой запихать весь хтмл, и вызвать в ней релевантный кусок, на который надо посмотреть.

В общем, задачка занятная
источник

AN

Alexander Nozik in Kotlin JVM
Andrew Mikhaylov
Ну да, если рендерится не целый хтмл, а только кусок, будет тяжко. Но для таких случаев никто не мешает в "тестовую" функцию с аннноташкой запихать весь хтмл, и вызвать в ней релевантный кусок, на который надо посмотреть.

В общем, задачка занятная
Ну да. Ничего невыполнимого, но куча мелких деталей. В принципе, вырисовывается некоторая общая концепция, как делать такие вещи в котлин. Обсуждали с отсутствующим тут Ильмиром в контексте написания клиентского кода на бэке. Делается рендер функция, которая запускается на определенном ресивере и чиста в смысле взаимодействия с чем-то кроме этого ресивера. Потом можно делать подмену этого ресивера и хоть отдельно html рендерить, хоть перекомпилировать jvm-ный код на JS
источник