Aucun hébergement côté serveur, fonctions cloud sans serveur ou base de données nécessaires. Les sites Suri statiques peuvent être déployés sur Vercel, Netlify et plus (généralement gratuitement) en quelques minutes.
Suri ne se soucie pas des redirections de serveur 3xx "techniquement supérieure". Suri veut juste que vous utilisiez enfin ce domaine sur lequel vous dépensez 59 $ / an et que vous reprenez vos courts liens des bitlys et des tinyurls du Web.
https://surishort.link/gh ⇒ https://github.com/surishortlink/suri
https://surishort.link est un exemple de site qui présente Suri en action. Vous pouvez consulter le référentiel du site et le fichier qui gère les liens pour voir comment il fonctionne.
Suri a des référentiels de modèles qui le rendent très facile à démarrer. Choisissez la plate-forme sur laquelle vous déployez et suivez les instructions étape par étape:
Vous ne vous déployez pas sur l'une de ces plateformes? Pas de soucis. Voici quelques options génériques qui couvrent la plupart des autres scénarios, qu'il s'agisse d'un fournisseur de cloud différent ou de l'héberger vous-même:
Au cœur de Suri se trouve le fichier links.json , situé dans le répertoire src , où vous gérez vos liens. Tous les référentiels de modèles incluent ce fichier ensemencé avec quelques exemples:
{
"/" : " https://www.youtube.com/watch?v=CsHiG-43Fzg " ,
"1" : " https://fee.org/articles/the-use-of-knowledge-in-society/ " ,
"gh" : " https://github.com/surishortlink/suri "
} Cela ne pourrait pas être plus simple: la clé est le chemin "liaison courte" qui est redirigé, et la valeur est l'URL cible. Les clés peuvent être aussi courtes ou aussi longues que vous le souhaitez, en utilisant le mélange de personnages que vous voulez. / est une entrée spéciale pour rediriger le chemin racine.
Suri est livré avec un fichier exécutable suri qui génère le site statique à partir du fichier links.json . Le site statique est sorti d'un répertoire nommé build .
Tous les référentiels de modèles sont configurés avec un script build qui invoque cet exécutable, ce qui rend la commande que vous exécutez simple:
npm run build Lorsque vous apportez une modification du fichier links.json , réévaluez simplement cette commande pour rénover le site statique, qui peut ensuite être redémarré. De nombreuses plates-formes pour lesquelles Suri possèdent des référentiels de modèles sont configurées pour le faire automatiquement.
La configuration est gérée via le fichier suri.config.json dans le répertoire racine. Il n'y a qu'une seule option à ce stade:
| Option | Description | Taper | Défaut |
|---|---|---|---|
js | Que ce soit pour rediriger avec JavaScript au lieu d'un <meta> actualiser. | Booléen | false |
Enfin, tous les fichiers du répertoire public seront copiés dans le répertoire build sans modification lorsque le site statique sera construit. Cela peut être utile pour des fichiers comme favicon.ico ou robots.txt (cela dit, Suri fournit des valeurs par défaut raisonnables pour les deux).
Si vous avez déjà frappé / cloné ce référentiel lorsqu'il était sur la version 0.1 à 0.5.1, vous remarquerez maintenant quelques différences avec la version 1.
La version 1 résout trois problèmes principaux avec la version 0:
render.yaml pour rendu et app.json pour Heroku (entre autres) dans votre référentiel. V1 corrige cela en ayant des référentiels de modèles séparés pour chaque plate-forme, qui ne comprend que les fichiers nécessaires pour cette plate-forme. Alors, comment améliorez-vous? Si vous n'avez jamais modifié votre fichier links.json , la mise à niveau est simple:
links.json .public , copiez-les.SURI_JS sur 1 , changez js en true dans suri.config.json . Si vous avez édité l'un des fichiers Eleventy - comme le modèle links.njk - vous voulez probablement vous en tenir à V0 et continuer à utiliser Eleventy.
Il y a quelques autres changements notables dans la V1 au-delà de cela:
build au lieu de _site .suri.config.json au lieu des variables d'environnement.npm run clean pour supprimer le répertoire de construction. npm run build le fait automatiquement avant chaque nouvelle version. Sinon, vous pouvez l'ajouter manuellement si vous l'avez trouvé utile.npm run dev pour construire, surveiller et servir le site statique pendant le développement. C'est exagéré pour la petite page HTML que Suri génère.npm run lint To Lint avec plus joli. Vous pouvez l'ajouter manuellement si vous l'avez trouvé utile.npm run release pour publier une nouvelle version de Suri. Vous pouvez l'ajouter manuellement si vous souhaitez marquer les versions de libération de votre référentiel.jstayton personnel sur GitHub vers une nouvelle organisation surishortlink pour tous les référentiels liés à Suri. La seule condition préalable est une version compatible de Node.js (voir engines.node dans package.json ).
Installez les dépendances avec NPM:
npm installLe module de test Node.js intégré et le module Assertions est utilisé pour les tests.
Pour exécuter les tests:
npm testPendant le développement, il est recommandé d'exécuter automatiquement les tests sur le changement de fichier:
npm test -- --watchJSDOC est utilisé pour documenter le code.
Pour générer les documents en tant que HTML vers le répertoire docs (Git-Ignored):
npm run docsPittier est configuré pour appliquer un style de code cohérent. Il est fortement recommandé d'ajouter une intégration à votre éditeur qui forme automatiquement sur SAVE.
Eslint est configuré avec les règles "recommandées" pour appliquer un niveau de qualité de code. Il est également fortement recommandé d'ajouter une intégration à votre éditeur qui forme automatiquement sur SAVE.
Pour exécuter via la ligne de commande:
npm run lint Lorsque la branche development est prête pour la sortie, libérez-la! est utilisé pour orchestrer le processus de libération:
npm run release Une fois le processus de version terminé, fusionnez la branche development dans la branche main , qui devrait toujours refléter la dernière version.