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 install
Le module de test Node.js intégré et le module Assertions est utilisé pour les tests.
Pour exécuter les tests:
npm test
Pendant le développement, il est recommandé d'exécuter automatiquement les tests sur le changement de fichier:
npm test -- --watch
JSDOC 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 docs
Pittier 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.