ASP означает AsciiDoctor Server Protocol
— простой протокол связи между клиентом и экземпляром сервера asciidoctor, который будет выполнять все операции Asciidoctor. Так что это немного похоже на LSP, где языковые части централизованно предоставляются экземпляром сервера.
Основная страница проекта: https://github.com/de-jcup/asp
Отслеживание проблем осуществляется по адресу https://github.com/de-jcup/asp/issues.
Вики: https://github.com/de-jcup/asp/wiki
С редактором AsciiDoctor для eclipse было чрезвычайно сложно справиться с зависимостями OSGI в сочетании с asciidoctor/asciidoctorj и JRuby (см. de-jcup/eclipse-asciidoctor-editor#213).
Поэтому вместо того, чтобы постоянно обрабатывать это снова с новыми зависимостями и т. д., работая с OSGI, этот проект был инициирован, чтобы стать автономным решением, которое может использоваться разными редакторами, не создавая постоянно новые процессы, а вместо этого повторно используя уже запущенный экземпляр сервера, который будет очень полезен. намного быстрее, чем соединение нового процесса с установленным вариантом.
Редакторы должны делегировать свои задачи преобразования только на стороне сервера и иметь уровень связи с сервером, который будет предоставлять информацию о местах конвертированного вывода (или ошибках).
Независимо от реальной установки, может использоваться на любых системах, где у разработчиков нет возможности установить asciidoctor.
Поставляется со стандартной настройкой инструментов (будет поддерживать HTML, docbook и PDF)
Может использоваться из нескольких IDE-интеграций (eclipse-asciidoctor,… ещё...)
Предоставляет клиентскую библиотеку для использования сервера, что очень удобно.
Все началось с приложения spring boot
, с rest-контроллера и т. д., очень красиво и удобно, но… Spring bootJar некорректно работал с asciidoctorj
+ jruby
.
Предоставление собственного решения fat jar в сочетании с spring boot
со временем сработало, но в самом начале я получил как минимум 59 МБ — это было слишком много.
Кроме того, Spring Boot имеет множество зависимостей, и у asciidoctorJ их много. Чтобы предотвратить межсайтовый эффект, протокол клиент-сервера должен быть максимально простым и практически не иметь зависимостей.
Вы можете использовать сервер ASP как внешний процесс или как встроенный сервер.
Для этого случая был создан специализированный лаунчер. Просто используйте ExternalProcessAsciidoctorJServerLauncher
, как это сделано в externalProcessExample.java и externalProcessWithDebugOutputExample.java.
То же, что и внешний вариант, но в качестве средства запуска используйте EmbeddedAsciidoctorJServerLauncher
. Примеры смотрите в интеграционных тестах.