URL: https://linuxfr.org/users/yboy360/journaux/asciidoctorj-et-extensions Title: AsciidoctorJ et extensions Authors: YBoy360 Date: 2024年08月03日T14:41:18+02:00 License: CC By-SA Tags: asciidoctor, ide, java et markdown Score: 14 Bonjour Aoutien•ienne, La façon dont nous utilisons Asciidoc dans nos projets peut susciter l’intérêt chez certains d’entre vous, je voudrais partager ici cette expérience. [Asciidoc](https://asciidoc.org/) est proche du [Markdown](https://fr.wikipedia.org/wiki/Markdown). Dans les grandes lignes, les 2 répondent aux mêmes besoins. Mais à l'usage, on peut différencier Asciidoctor de Markdown : - Syntaxe pouvant plus facilement s’inclure récursivement (tableau qui contient des tableaux qui contient des exemples, par exemple...) ; - Fonctionnalité bien plus riche par défaut, et homogène à travers les diverses implémentations ; - Syntaxe des tableaux plus agréables ; - Beaucoup d’extensions présentent par défaut ; - Facile à étendre Nous utilisons [AsciidoctorJ](https://github.com/asciidoctor/asciidoctorj) , il s’agit d’une implémentation Java, qui propose une API pour accéder à la structure du document et [étendre simplement le langage](https://docs.asciidoctor.org/asciidoctorj/latest/extensions/extensions-introduction/). Les extensions sont **portables binairement**, elles peuvent soit s’exécuter en ligne de commande ou soit s'intégrer dans un IDE. Nous avons développé 2 extensions, qui sont décrite dans la page de l’application [Intercom](https://taack.org/en/app/Intercom). L'une permet d'ajouter des slides dans une page (voir le menu [news](https://taack.org/en/news), l'autre, de lister des objets dans un Intranet (développé via notre Framework). Nous utilisons un [driver JDBC](https://taack.org/en/more/JDBC/taack-jdbc-driver) pour accéder au modèle de données de notre application. On utilise un petit langage dérivé du SQL (le TQL) pour créer un dataset, et un autre langage pour spécifier la présentation des données. ```sql select u.rawImg, u.username, u.manager.username as manager from User u where u.dateCreated> '2024-01-01' and u.manager.username = 'admin'; -- table rawImg as "Pic", username as "Name", manager as "Manager" ``` L’avantage de parser les requêtes est de valider l’accès aux données et d'améliorer le rapport d’erreur lors de la traduction de la requête. De plus, un bénéfice par rapport au HQL / SQL, est de donner accès aux getters des classes mappées qui ne sont pas en Db. Sans aller aussi loin qu’un Jupyter notebook, on peut déjà faire bien des choses de façon portable. L'intégration d'Asciidoctor est accessible dans la version Opensource d'Intellij.