ASP significa AsciiDoctor Server Protocol
- um protocolo de comunicação simples entre um cliente e uma instância do servidor asciidoctor que fará todas as operações do Asciidoctor. Portanto, é um pouco semelhante ao LSP, onde as partes da linguagem são fornecidas centralmente por uma instância do servidor.
Página principal do projeto: https://github.com/de-jcup/asp
Rastreamento de problemas feito em https://github.com/de-jcup/asp/issues
Wiki: https://github.com/de-jcup/asp/wiki
Com o AsciiDoctor Editor para Eclipse foi extremamente difícil lidar com as dependências OSGI em conjunto com asciidoctor/asciidoctorj e JRuby (veja de-jcup/eclipse-asciidoctor-editor#213)
Então, em vez de lidar com isso sempre novamente com novas dependências etc. trabalhando com OSGI este projeto foi iniciado, para se tornar uma solução autônoma, que pode ser usada por diferentes editores sem gerar sempre novos processos, mas em vez disso reutilizar uma instância de servidor já iniciada, o que será muito muito mais rápido do que fazer uma nova comunicação de processo para uma variante instalada.
Os editores devem delegar apenas suas tarefas de conversão ao lado do servidor e ter uma camada de comunicação com o servidor que produzirá informações sobre locais de saída convertidos (ou erros).
Independente da instalação real, pode ser usado em qualquer sistema onde os desenvolvedores não tenham possibilidade de instalar o asciidoctor
Vem com configuração de ferramenta padrão (terá suporte para HTML, docbook e PDF)
Pode ser usado a partir de múltiplas integrações IDE (eclipse-asciidoctor,… mais…)
Fornece uma biblioteca cliente para usar o servidor, tão conveniente
Tudo começou com um aplicativo spring boot
, com rest controller etc., muito bom e conveniente, mas… spring bootJar não funcionou corretamente com asciidoctorj
+ jruby
.
Fornecer uma solução própria de fat jar em combinação com spring boot
funcionou com o passar do tempo, mas consegui pelo menos 59 MB no início - isso foi demais.
Além disso, o Spring Boot vem com muitas dependências - e o asciidoctorJ tem muitas. Para evitar efeitos entre sites, o protocolo cliente-servidor deve ser o mais simples possível e quase não ter mais dependências.
Você pode usar o servidor ASP como um processo externo ou como um servidor incorporado.
Para este caso foi criado um lançador especializado. Basta usar ExternalProcessAsciidoctorJServerLauncher
como feito em ExternalProcessExample.java e ExternalProcessWithDebugOutputExample.java
Igual à variante externa, mas use EmbeddedAsciidoctorJServerLauncher
como inicializador. Para exemplos, veja os testes de integração.