Pour publier un site sur internet, il y a toujours deux grandes méthodes : utiliser un gestionnaire de contenus comme WordPress, ou générer un site statique composé de fichiers HTML. La première méthode est la plus courante de nos jours, mais la deuxième conserve quelques avantages en termes de performances et de sécurité ou encore de prix d’hébergement. En revanche, coder à la main toutes les pages d’un site devient vite ingérable et c’est pourquoi on utilise des outils qui génèrent les pages.
Publish est un nouveau générateur de sites statiques open-source qui a la particularité d’être écrit en Swift. Le langage de développement d’Apple sert surtout à créer des apps pour les appareils iOS, les Mac, montres et autres Apple TV, mais il ne se limite pas à ce domaine. Le constructeur lui-même a lancé un groupe de travail pour l’adapter au monde des serveurs, mais ce n’est pas dans ce cadre que ce nouvel outil vient se placer.
En effet, Publish est un générateur de sites qui va convertir des fichiers source en fichiers HTML et CSS, prêts à être publiés sur un serveur. Il peut fonctionner sur un serveur Linux grâce à un outil en ligne de commande et un système d’API, mais il a été pensé pour l’écosystème Swift et on peut ainsi également l’utiliser avec Xcode, l’outil de développement créé par Apple. D’ailleurs, Publish est proposé sous la forme d’un paquet Swift et vous devrez le récupérer avec le gestionnaire de paquets officiel.
L’intégration de la philosophie générale de Swift va encore plus loin que cela. La plupart des générateurs de sites statiques fonctionnent sur la base d’un outil en ligne de commandes et de dossiers et fichiers organisés d’une certaine manière. La configuration pour le site est en général enregistrée dans l’un de ces fichiers et l’outil s’en sert pour créer le site. Rien de tel avec Publish, où chaque site est défini sous la forme d’un autre paquet Swift.
Le site entier est défini par un fichier Package.swift
qui pourra être ouvert dans Xcode. À l’intérieur, on trouvera toute la configuration essentielle, comme le nom du site, son thème ou encore les types de contenus qui seront générés (articles, pages, recettes, films…). Pour générer le site, la commande Product > Run de Xcode pourra être utilisée et le site statique sera généré dans un dossier « Output ». D’autres méthodes permettent d’atteindre le même résultat sans passer par un Mac, mais toute la phase de configuration initiale devra se faire dans cet environnement de travail.
Quand tout est configuré, Publish fonctionne comme n’importe quel autre générateur de site statique. Tous les contenus doivent être placés dans des fichiers Markdown et organisés dans une hiérarchie spécifique, avec des en-têtes à respecter pour les métadonnées. La phase d’approche est plus complexe et nécessite quelques connaissances de base en développement et de préférence en Swift.
C’est un choix assumé par le créateur de Publish, John Sundell, qui est aussi l’auteur du site Swift by Sundell (qui est d’ailleurs généré avec cet outil). En contrepartie de cette approche plus difficile, ce générateur est extrêmement souple et devrait permettre d’en faire plus que ses concurrents. Il y a un système de plug-ins qui reposent également sur des paquets Swift, et les modèles de pages (templates en anglais) sont générées avec Plot, un outil du même développeur pour écrire du HTML également en Swift.
C’est un projet très ambitieux, qui pourrait aboutir à un écosystème riche si d’autres développeurs s’y intéressent. Pour le moment, c’est tout nouveau et il n’y a pas vraiment de plug-ins à utiliser, ni de thème prêts à emploi. Tout reste à inventer, mais comme il y a beaucoup de développeurs qui écrivent du Swift au quotidien, Publish a une bonne chance de connaître le succès.
Publish est un projet open-source distribué sur GitHub. Tous les développeurs qui le souhaitent peuvent l’utiliser et y contribuer en apportant des améliorations.