No se necesitan alojamiento del lado del servidor, funciones de nube sin servidor o base de datos. Los sitios estáticos de Suri se pueden implementar en Vercel, netlify y más (generalmente de forma gratuita) en unos minutos.
A Suri no le importa las redireccionamientos del servidor 3xx
"técnicamente superior". Suri solo quiere que finalmente use ese dominio en el que gaste $ 59/año y retire sus enlaces cortos de los bitlys y tinyurls de la web.
https://surishort.link/gh ⇒ https://github.com/surishortlink/suri
https://surishort.link es un sitio de ejemplo que muestra a Suri en acción. Puede consultar el repositorio del sitio y el archivo que administra los enlaces para ver cómo funciona.
Suri tiene repositorios de plantillas que hacen que sea muy fácil comenzar. Elija la plataforma que está implementando y siga las instrucciones paso a paso:
¿No se implementa en una de esas plataformas? No hay problema. Aquí hay algunas opciones genéricas que cubren la mayoría de los otros escenarios, ya sea un proveedor de nube diferente o alojándolo usted mismo:
En el corazón de Suri se encuentra el archivo links.json
, ubicado en el directorio src
, donde administra sus enlaces. Todos los repositorios de plantilla incluyen este archivo sembrado con algunos ejemplos:
{
"/" : " 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 "
}
No podría ser más simple: la clave es la ruta de "enlace corto" que se redirige, y el valor es la URL objetivo. Las teclas pueden ser tan cortas o tan largas que quieran, usando cualquier mezcla de personajes que desee. /
es una entrada especial para redirigir la ruta de la raíz.
Suri se envía con un archivo ejecutable suri
que genera el sitio estático desde el archivo links.json
. El sitio estático se emite a un directorio llamado build
.
Todos los repositorios de plantilla están configurados con un script build
que invoca este ejecutable, lo que hace que el comando ejecute simple:
npm run build
Cuando realiza un cambio en el archivo links.json
, simplemente vuelva a ejecutar este comando para volver a generar el sitio estático, que luego se puede volver a implementar. Muchas de las plataformas para las que Suri tiene repositorios de plantillas se configuran para hacerlo automáticamente.
La configuración se maneja a través del archivo suri.config.json
en el directorio raíz. Solo hay una opción en este punto:
Opción | Descripción | Tipo | Por defecto |
---|---|---|---|
js | Si redirigir con JavaScript en lugar de una actualización <meta> . | Booleano | false |
Finalmente, cualquier archivo en el directorio public
se copiará en el directorio build
sin modificar cuando se construya el sitio estático. Esto puede ser útil para archivos como favicon.ico
o robots.txt
(dicho, dicho, Suri proporciona valores predeterminados sensibles para ambos).
Si previamente bifurcó/clonó este repositorio cuando estaba en la versión 0.1 a 0.5.1, notará algunas diferencias ahora con la versión 1.
La versión 1 resuelve tres problemas principales con la versión 0:
render.yaml
para Render y app.json
para Heroku (entre otros) en su repositorio. V1 soluciona esto al tener repositorios de plantilla separados para cada plataforma, que solo incluyen los archivos necesarios para esa plataforma. Entonces, ¿cómo se actualiza? Si solo editó su archivo links.json
. JSON, la actualización es simple:
links.json
.public
, copielos.SURI_JS
a 1
, cambie js
a true
en suri.config.json
. Si editó alguno de los altamentos, como la plantilla de links.njk
.
Hay algunos otros cambios notables en V1 más allá de eso:
build
en lugar de _site
.suri.config.json
en lugar de variables de entorno.npm run clean
para eliminar el directorio de compilación. npm run build
lo hace automáticamente antes de cada nueva construcción. De lo contrario, puede agregarlo manualmente si lo encontró útil.npm run dev
para construir, ver y servir el sitio estático durante el desarrollo. Es exagerado para la pequeña página HTML que genera Suri.npm run lint
a Lint con más bonito. Puede agregarlo manualmente si lo encontró útil.npm run release
para lanzar una nueva versión de SURI. Puede agregarlo manualmente si desea etiquetar versiones de lanzamiento de su repositorio.jstayton
a GitHub a una nueva organización surishortlink
para todos los repositorios relacionados con Suri. El único requisito previo es una versión compatible de Node.js (ver engines.node
en package.json
).
Instalar dependencias con NPM:
npm install
El módulo de corredores y afirmaciones de prueba Node.js incorporado se utiliza para la prueba.
Para ejecutar las pruebas:
npm test
Durante el desarrollo, se recomienda ejecutar las pruebas automáticamente en el cambio de archivo:
npm test -- --watch
JSDOC se usa para documentar el código.
Para generar los documentos como HTML en el directorio docs
(git-grabado):
npm run docs
Prettier está configurado para hacer cumplir un estilo de código constante. Se recomienda altamente agregar una integración a su editor que formatea automáticamente a Save.
Eslint está configurado con las reglas "recomendadas" para hacer cumplir un nivel de calidad del código. También se recomienda agregar una integración a su editor que formatea automáticamente a SAVE.
Para ejecutar a través de la línea de comando:
npm run lint
Cuando la rama development
esté lista para su lanzamiento, ¡lóbelo! se usa para orquestar el proceso de lanzamiento:
npm run release
Una vez que se completa el proceso de lanzamiento, fusione la rama development
en la rama main
, que siempre debe reflejar el último lanzamiento.