Aller au contenu

LNK

lnk est l’interface en ligne de commande du dépôt pour modifier une instance vanityURLs. Elle modifie les fichiers source dans custom/, lance npm run check, puis stage, commit et pousse les opérations d’écriture reussies.

Utilisez-la lorsque le changement doit entrer dans l’historique Git et se déployer par le workflow Worker normal. Utilisez Helper local lorsque vous voulez seulement ouvrir une redirection existante depuis le terminal.

Prerequis

  • Un dépôt vanityURLs configure disponible localement
  • Node.js 20 ou plus recent
  • npm
  • Git

Lancez la commande locale au dépôt :

./scripts/lnk --help

Si vous avez installé les outils poste avec npm run local-install, vous pouvez habituellement lancer lnk depuis n’importe quel répertoire. Définissez V8S_REPO lorsqu’une commande installée doit pointer vers un dépôt local précis.

Commandes principales

CommandeEffet
./scripts/lnk LONG_URL [SLUG]Ajoute un lien dans custom/v8s-links.txt
./scripts/lnk LONG_URL --random-slug-length NAjoute un lien avec un slug génère de N caracteres
./scripts/lnk --splat LONG_URL_WITH_:splat SLUGAjoute un lien splat stocke comme SLUG/*
./scripts/lnk list [SLUG]Liste les entrées du registre génère depuis build/v8s.json
./scripts/lnk tag listListe les longueurs de slugs aléatoires propres aux tags
./scripts/lnk tag set TAG --random-slug-length NDefinit une longueur de slug aléatoire pour un tag
./scripts/lnk tag unset TAGSupprime une longueur de slug propre à un tag
./scripts/lnk schedule add SLUG TARGET ...Ajoute ou remplace une règle de cible planifiée
./scripts/lnk schedule default SLUG TARGETDefinit la cible fallback d’un horaire existant
./scripts/lnk schedule list [SLUG]Liste les règles d’horaire
./scripts/lnk block add DOMAIN ...Ajoute ou met à jour un domaine bloque
./scripts/lnk block keyword KEYWORD ...Ajoute ou met à jour un mot-cle bloque
./scripts/lnk block allow DOMAIN ...Ajoute ou met à jour un domaine autorise
./scripts/lnk list policyResume la politique source active
./scripts/lnk list categoriesListe les categories et sevérités de politique
./scripts/lnk list domain [block|allow]Liste les domaines bloques et autorises
./scripts/lnk list keywordListe les mots-cles bloques
./scripts/lnk versionAffiche la version du paquet

Les commandes de liste acceptent --format table ou --format json. Table est le format par défaut.

Details des commandes

Ajouter des liens

./scripts/lnk https://github.com/vanityURLs github
./scripts/lnk https://www.linkedin.com/company/example social/linkedin --title LinkedIn --tags social --owner team
./scripts/lnk --splat https://docs.example.com/:splat docs
./scripts/lnk --state ephemeral --title "Launch" https://example.com campaign/launch

Si vous omettez le slug, lnk en génère un avec la longueur effective depuis la configuration de site fusionnée. custom/v8s-site-config.json peut remplacer la valeur, et les valeurs absentes héritent de defaults/v8s-site-config.json. npm run setup écrit 3 lorsque la valeur est absente. Les slugs génères utilisent l’alphabet lisible configure. La valeur produit par défaut est 34789abcdefghjkmnpqrstvwxy.

Remplacez la longueur pour une seule commande avec :

./scripts/lnk https://github.com/houba/styleGuide --random-slug-length 5

Vous pouvez aussi configurer des valeurs par défaut propres aux tags :

./scripts/lnk tag set social --random-slug-length 5
./scripts/lnk tag list
./scripts/lnk tag unset social

Lorsqu’un lien génère possède plusieurs tags avec des longueurs configurées, lnk utilise la longueur la plus courte parmi les tags applicables. Un --random-slug-length ou --slug-length explicite dans la commande gagne sur les valeurs par tag et sur la valeur globale.

Les valeurs produit par défaut configurent les liens training a 4 caracteres et les liens debug a 2 caracteres.

Si le slug existe déjà, lnk affiche l’entree actuelle et le remplacement propose, puis demande si vous voulez remplacer l’entree. Utilisez --replace pour remplacer sans question, ou --no-replace pour conserver l’entree existante.

Les états valides sont permanent, ephemeral, expired, disabled, maintenance et deactivated.

Options utiles pour les liens :

OptionRole
--state STATEDefinit l’état de cycle de vie
--title TEXTAjoute un titre lisible
--description TEXTAjoute une description lisible
--tags TAGSAjoute des tags séparés par des virgules
--owner OWNERDefinit le libellé de responsabilité
--expires-at DATEDefinit une date ISO ou un timestamp
--notes TEXTAjoute des notes internes
--random-slug-length NDefinit la longueur du slug génère pour cette commande
--slug-length NAlias de --random-slug-length
--replaceRemplace un slug existant sans question
--no-replaceConserve un slug existant
--splatStocke le slug comme SLUG/* et exige :splat dans la cible

Lister les liens

./scripts/lnk list
./scripts/lnk list social/linkedin
./scripts/lnk list --format json

lnk list lit le registre génère. Si build/v8s.json n’existe pas, la commande lance d’abord npm run build.

Gerer les horaires

./scripts/lnk schedule add hangout https://zoom.us/j/work --label work --days mon,tue,wed,thu,fri --from 09:00 --to 17:00 --timezone America/Toronto --default https://discord.gg/personal
./scripts/lnk schedule default hangout https://discord.gg/personal --timezone America/Toronto
./scripts/lnk schedule list hangout

Les règles d’horaire de cette commande sont écrites dans le fichier hérité custom/v8s-schedules.json pendant la période de compatibilité 3.x. Les nouveaux horaires écrits à la main devraient utiliser des blocs @schedule inline dans custom/v8s-links.txt. schedule add exige --label, --days, --from et --to. Les heures utilisent HH:MM; les jours utilisent mon, tue, wed, thu, fri, sat et sun.

Utilisez --dry-run sur les commandes d’horaire pour afficher le JSON mis à jour sans écrire, verifier, commit ou pousser.

Gerer la politique source

./scripts/lnk list policy
./scripts/lnk list categories
./scripts/lnk list domain block
./scripts/lnk list keyword --format json
./scripts/lnk block add example-bad.test --category phishing --severity high --reason "Fake login page"
./scripts/lnk block keyword wallet-drain --category phishing --severity high --reason "Credential theft lure"
./scripts/lnk block allow example.com --reason "Domaine controle par le proprietaire"

Les commandes de politique ecrivent custom/v8s-policies.json. Le build transforme la politique source en build/v8s-blocklist.json. Les categories et sevérités sont validees avec defaults/v8s-blocklist-categories.json.

Utilisez --dry-run sur les commandes de politique pour afficher le JSON mis à jour sans écrire, verifier, commit ou pousser.

Variables d’environnement

VariableRole
DRY_RUN=trueAffiche le changement prevu sans écrire, verifier, commit ou pousser
V8S_REPO=PATHPointe une commande lnk installee vers un dépôt vanityURLs local
V8S_LINKS_OWNER=OWNERDefinit la valeur owner par défaut pour les nouveaux liens
V8S_LINKS_FILE=FILERemplace le fichier de liens
V8S_SCHEDULES_FILE=FILERemplace le fichier des horaires
V8S_POLICY_FILE=FILERemplace le fichier de politique

Sur Windows PowerShell :

$env:V8S_REPO="C:\path\to\YOUR-SHORT-DOMAIN"
$env:V8S_LINKS_OWNER="team"
node ./scripts/lnk https://example.com example

Comportement d’écriture

Les opérations d’écriture reussies pour les liens, horaires et politiques lancent :

npm run check
git add FILE
git commit -m OPERATION_MESSAGE
git push

Les commandes d’écriture directes de lnk utilisent des commits conventionnels propres à l’opération, comme feat(links): add SLUG, feat(schedules): update SLUG, feat(policies): block DOMAIN, et feat(policies): allow DOMAIN.

Pour une publication locale plus large, npm run local-publish selectionne les messages depuis local_publish.commit_messages dans defaults/v8s-local-config.json, fusionne avec custom/v8s-local-config.json. Les cles par défaut sont :

CleUtilisee quand
linksSeulement custom/v8s-links.txt est stage
policiesSeulement custom/v8s-policies.json ou custom/v8s-blocklist.json est stage
site_configSeulement custom/v8s-site-config.json est stage
mixedPlusieurs fichiers ou les chemins de publication configures sont stages

Remplacez le message local-publish selectionne avec :

npm run local-publish -- --message "chore: update short-link configuration"

Cela rend lnk volontairement opinionated : la commande sert aux changements que vous êtes prêt a valider et publier. Utilisez DRY_RUN=true ou le --dry-run propre à la commande lorsque vous voulez previsualiser d’abord.

Modifier cette page Dernière modification: