Ouvrir le menu principal

MacGeneration

Recherche

Publish, un générateur de sites statiques en Swift

Nicolas Furno

mardi 31 décembre 2019 à 10:51 • 17

Logiciels

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.

Capture d’écran de la documentation de Publish.

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.

Un site Publish ouvert dans Xcode. Dans ce fichier, vous pourrez définir les principales caractéristiques du site, comme son URL, le titre et la description ou encore le thème. Dans la barre latérale de gauche, on distingue les fichiers en entrée (dossier Content) et les fichiers en sortie (dossier Output).

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.

illustration magazine 25 ans

MacGeneration a 25 ans !

Participez à la fête et découvrez l’histoire de votre site favori en précommandant notre magazine exclusif.

Je précommande le magazine

Livebox 7 Essential : Orange va lancer une box Wi-Fi 7 en Roumanie

13:15

• 5


Les meilleures promos du Black Friday : AirPods Pro 2 à 190 €, 4 AirTags à 89 €, iPad 10 à 349 €…

11:55

• 24


Refurb : -300 € sur l'Apple Studio Display 5K nano-texturé

11:48

• 0


TabTab : un sélecteur d'apps et d'onglets pour remplacer celui de macOS

11:15

• 10


Ravalement de façade pour coconutBattery, qui passe en version 4.0

11:00

• 7


Jusqu’à - 50 % chez ShopSystem : achetez vite les coques d'iPhone les plus fines au monde ! 📍

08:55


LDLC garantit pendant 5 ans votre iPhone, votre MacBook et votre Mac gratuitement

Partenaire


Kernel Panic : notre avis sur les MacBook Pro M4 et le nouveau Mac mini !

07:30

• 2


NordVPN est à - 74 % avec 3 mois offerts pour le Black Friday, foncez ! 📍

26/11/2024 à 22:50


DNS alternatifs : Google et Cloudflare encore contraints de bloquer des sites de streaming illégaux

26/11/2024 à 22:06

• 32


Porsche ne met pas les gaz pour adopter le nouveau CarPlay

26/11/2024 à 21:15

• 36


Black Friday : un code promo de 10 € offert chez Amazon pour l’achat de 100 € de carte cadeau Apple

26/11/2024 à 17:15

• 13


Black Friday : forfait 300 Go à 9,99 €/mois chez SFR RED et Cdiscount Mobile

26/11/2024 à 17:06


La censure complique l'arrivée d'Apple Intelligence en Chine

26/11/2024 à 17:00

• 54


Cartouches d’encre : HP accusé d’obsolescence programmée

26/11/2024 à 16:15

• 60


Le nouveau CarPlay croisé dans une base de données avec le logo d’Audi

26/11/2024 à 14:34

• 13