openpencil/packages/docs/fr/programmable/cli/scripting.md
mrhard9090 2c9bb8fcd7
feat(figma-api): add detachInstance() to instances (#778)
instance.detachInstance() turns an instance into a frame that keeps its content, as in Figma, from scripts run through eval. It reuses the graph's shared detach implementation, asserts editability like the proxy's other mutations, and joins the instance surface check against @figma/plugin-typings.
2026-09-30 05:19:11 +04:00

2.2 KiB
Raw Blame History

title description
Scripting Exécuter JavaScript avec une API compatible avec les plugins Figma pour interroger, modifier et générer des designs.

Scripting

openpencil eval exécute JavaScript sur un document et fournit un objet global figma. Cette commande convient aux modifications par lots, à l’inspection, aux données de test et à l’automatisation sans ouvrir l’interface de l’éditeur.

Utilisation de base

openpencil eval design.fig -c "return figma.currentPage.children.length"

-c accepte JavaScript. Si le code ne commence pas par return, OpenPencil l’exécute dans une fonction asynchrone et renvoie le résultat éventuel.

Interroger des objets

openpencil eval design.fig -c "
  return figma.currentPage
    .findAll((node) => node.type === 'FRAME')
    .map((node) => ({ id: node.id, name: node.name }))
"

Modifier et enregistrer

--write ou -w remplace le fichier d’entrée. --output ou -o crée un autre fichier.

openpencil eval design.fig -c "figma.currentPage.name = 'Updated'" -o updated.fig

Lire le script depuis stdin

cat transform.js | openpencil eval design.fig --stdin --write

Document ouvert

Omettez le chemin pour exécuter le script sur le document actif dans l’application de bureau.

Sortie

Dans un environnement non interactif, eval utilise JSON par défaut. --json l’impose explicitement et --quiet ou -q masque la sortie lorsqu’un fichier seul est écrit.

API compatible

L’API suit le modèle de Figma Plugin API, mais agit sur SceneGraph et les formats OpenPencil. Elle couvre document, pages, création d’objets, opérations d’arbre, composants, variables et propriétés courantes.

Les identifiants exacts comme figma.currentPage, createFrame, appendChild, fills, fontSize, layoutMode et strokeWeight restent inchangés.

Limites

Il n’existe pas encore d’équivalent complet pour node.exportAsync(), node.setBoundVariable(), figma.combineAsVariants(), les styles de peinture/texte et toutes les opérations booléennes vectorielles.

Selon le besoin, utilisez aussi la commande d’exportation, les outils du noyau ou les opérations directes de SceneGraph.