Один товарищ почти сделал ее еще полгода назад. Но там было куча деталей, которые в итоге пришлось самому дописывать. Я даже руками svg иконку правил! Понравился концепт. Ты пишешь почти все, что надо в markdown-файлах. Что необходимо - дописываешь Vue-компонентами. Просишь собрать и оно собирает все в одну папку с html/js/css, которую можно просто положить на сервер и оно работает. Полноценное SPA, причем браузер получает уже срендеренный для каждой страницы HTML, как при SSR. Но собирается это все хоть на машине разработчика еще(хотя правильнее на CI), и на сервере лежит уже в html-файлах. Для не особо динамических сайтов самое то. Главная страница, документация, ну и блог продукта небольшой там же будет. Инструмент называется Vitepress от создателя Vue.
Но проблема всех этих глубоких компиляций разных яваскриптов друг в друга почти всегда одна и та же: если вдруг совершаешь небольшую ошибку, то придется долго гадать что явилось ей причиной. Stacktrace не поможет. Он может выглядеть примерно так и вообще ничего не даст.
Error: Transform failed with 2 errors:
inline-script.js:1:0: ERROR: The JSX syntax extension is not currently enabled
inline-script.js:2:25: ERROR: Expected "}" but found ";"
at failureErrorWithLog (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:1651:15)
at /Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:849:29
at responseCallbacks.<computed> (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:704:9)
at handleIncomingPacket (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:764:9)
at Socket.readFromStdout (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:680:7)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)
at Pipe.onStreamRead (node:internal/stream_base_commons:190:23)
Мораль: современный яваскриптовый веб - крутой. И аналогов достойных у него нет. Но внутри все до сих пор выглядит так хрупко, будто чихнешь и все развалится.