Figma-export عبارة عن أداة CLI للتصدير المجمع لملفات Figma وFigJam وFigma Slides إلى سطح المكتب المحلي الخاص بك بتنسيق .fig
/ .jam
/ .deck
الخاص بـ Figma. يدعم Figma-export التنزيل حسب الفريق والمشروع وحتى المسودات.
تستفيد هذه الأداة من REST API وPlaywright من Figma لأتمتة اكتشاف ملفات Figma وتنزيلها.
قد تعمل الإصدارات الأخرى، ولكن لم يتم اختبارها رسميًا.
ستحتاج أيضًا إلى رمز وصول Figma الذي يمكنك إنشاؤه من خلال إعدادات ملف تعريف مستخدم Figma الخاص بك.
cd
في المستودعnpm install
قم بإنشاء ملف .env
في جذر المستودع:
FIGMA_EMAIL= " [email protected] "
FIGMA_PASSWORD= " hunter2 "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads " # Absolute path where files will be downloaded to
WAIT_TIMEOUT=10000 # Time in ms to wait between downloads
إذا كنت تستخدم SSO لتسجيل الدخول إلى Figma، فيمكنك إما تعيين كلمة مرور يدويًا (راجع wiki) أو يمكنك تقديم ملف تعريف ارتباط جلسة مصادقة Figma من خلال FIGMA_AUTH_COOKIE
بدلاً من FIGMA_EMAIL
و FIGMA_PASSWORD
:
FIGMA_AUTH_COOKIE= " my-auth-cookie-value "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads "
WAIT_TIMEOUT=10000
يجب أن تكون قيمة FIGMA_AUTH_COOKIE
هي قيمة ملف تعريف الارتباط __Host-figma.authn
. يرجى الرجوع إلى الويكي حول كيفية الحصول على هذه القيمة.
تحدد files.json
ملفات Figma التي سيتم تنزيلها داخل حسابك.
نصيحة
المسودات هي مجرد مشروع مخفي في Figma لذا يمكنك تنزيلها تمامًا باستخدام Figma-export. راجع موقع wiki للتعرف على كيفية الحصول على مسودات معرف المشروع.
يوصى باستخدام أحد الأوامر المضمنة لإنشاء files.json
:
npm run get-team-files {team_ids ...}
- يحصل على جميع الملفات لجميع المشاريع ضمن معرفات الفريق المحددة (مفصولة بمسافة)npm run get-team-files 12345 67890
npm run get-project-files {project_ids ...}
- الحصول على جميع الملفات لمعرفات المشروع المحددة (مفصولة بمسافة)npm run get-project-files 12345 67890
للعثور على معرف فريق Figma الخاص بك، انتقل إلى صفحة Figma الرئيسية، وانقر بزر الماوس الأيمن فوق فريقك في الشريط الجانبي الأيسر، ثم انقر فوق Copy link . سيحتوي الجزء الأخير من عنوان URL الذي نسخته على معرف فريقك: https://www.figma.com/files/team/1234567890
.
للعثور على معرف المشروع، انتقل إلى منزل فريقك، وانقر بزر الماوس الأيمن فوق المشروع، ثم انقر فوق نسخ الرابط . سيحتوي الجزء الأخير من عنوان URL الذي نسخته على معرف المشروع: https://www.figma.com/files/project/1234567890
.
أنت حر في إنشاء هذا الملف يدويًا طالما أنه يتبع هذه البنية:
[
{
"name" : String,
"id" : String,
"team_id" : String?,
"files" : [
{
"key" : String,
"name" : String
},
...
]
},
...
]
هذه بنية معدلة من القيمة المرجعة لنقطة نهاية ملفات مشروع GET الخاصة بـ Figma.
بمجرد إنشاء files.json
، يمكنك بعد ذلك تشغيل npm run start
لبدء التنزيلات. سيتم عرض حالة كل تنزيل في وحدة التحكم.
سيتم تنزيل كل ملف إلى DOWNLOAD_PATH
المحدد في مجلد يحمل اسم المشروع ومعرفه. سيتم حفظ كل ملف باسم الملف والمعرف (المفتاح). ستبدو بنية المجلد كما يلي:
Project A (12345)/
├── File X (123).fig
└── File Y (456).fig
Project B (67890)/
└── File Z (789).fig
إذا قمت بتشغيل get-team-files
، فستحتوي files.json
أيضًا على إشارات إلى معرف (معرفات) الفريق بحيث يتم وضع المشاريع في مجلد يحمل اسم معرف الفريق. في هذه الحالة، ستبدو بنية المجلد كما يلي:
1029384756/
├── Project A (12345)/
│ ├── File X (123).fig
│ └── File Y (456).fig
└── Project B (67890)/
└── File Z (789).fig
5647382910/
└── Project C (45678)/
└── File W (012).fig
يتم تعطيل التنزيلات الموازية بشكل افتراضي. لتمكينها، قم بتحديث الخصائص التالية في playwright.config.ts
:
export default defineConfig ( {
...
fullyParallel : true ,
workers : 3 , // The maximum number of parallel downloads
...
} ) ;
إذا واجهت تنزيلات فاشلة، فيمكنك محاولة إعادة تشغيل تلك التنزيلات الفاشلة فقط باستخدام أمر npm run retry
.
لاحظ أن التنزيلات قد تفشل لأي عدد من الأسباب، ولكن عادةً ما يكون ذلك بسبب الوصول إلى مهلة Playwright. يمكنك زيادة هذه المهلة عن طريق تحديث تكوين timeout
في playwright.config.ts
.
الأوامر التالية متاحة عبر npm run
:
يأمر | وصف |
---|---|
get-team-files | يُنشئ files.json من معرفات فريق Figma |
get-project-files | يُنشئ files.json من معرفات مشروع Figma |
start | يبدأ التنزيلات |
retry | إعادة محاولة التنزيلات الفاشلة من التشغيل الأخير |
dry-run | يسرد الملفات التي سيتم تنزيلها |
report | عرض تقرير HTML لآخر عملية تشغيل |
في أي وقت، يمكنك الضغط على ctrl+c
لإيقاف أمر ما.
timeout
في playwright.config.ts
)WAIT_TIMEOUT
)