Figma plugin API человеческим языком. Часть 2

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!


Взаимодействие с Figma

<< Часть 1 Hello World!!!

В статье про написание скриптов для  Adobe After Effects я предложил читателям сделать песочницу кода, работающую прямо в AE. Давайте теперь сделаем такую же и для Figma. За основу можно взять заготовку из предыдущей статьи. Здесь вы найдете необходимые для работы плагина файлы manifest.json, index.html и plugin.js.

Для начала откроем manifest.json и заменим значение поля name на актуальное. Я назвал плагин Script Notepad.

manifest.json

{
 "name": "Script Notepad",
 "api": "1.0.0",
 "main": "plugin.js",
 "ui": "index.html",
 "editorType": [
   "figma"
 ]
}

Теперь в index.html создадим текстовое поле для ввода и кнопку для запуска кода:

<textarea rows="20" cols="43"></textarea>
<button>Run</button>

А так же добавим им стилей:

<style>
   textarea {
       padding: 10px;
       resize: none;
   }
   button {
       display: block;
       cursor: pointer;
       margin: 20px auto;
       width: 100px;
   }
</style>

Теперь следует обработать нажатие кнопки и отправить в фигму код, который мы напишем в текстовом поле.

<script>
   document.querySelector('button').onclick = () => {
       const codeText = document.querySelector('textarea').value;
       parent.postMessage({ pluginMessage: codeText}, '*');
   }
</script>

Мы извлекаем из текстового поля содержимое и с помощью метода postMessage отправляем его в Figma. Метод postMessage принимает два параметра. Первый - это объект с полем pluginMessage, значение которого может быть любым типом данных. Значение этого поля Figma получит при обработке сообщения. Второй параметр - строка “*”, указывает на источник сообщения. Подробности работы метода можно найти здесь.

С index.html все, переходим к plugin.js. Тут мы первым делом открываем окно плагина.

figma.showUI (
   __html__,
   {width: 400, height: 400}
);

А следом обрабатываем получение сообщения из окна плагина.

figma.ui.onmessage = e => {
   try {
       eval(e)
   } catch (err) {
       console.error(err);
   }
}

В обработчике мы пробуем преобразовать сообщение в код, а в случае неудачи выводим сообщение об ошибке в консоль.

Вот собственно и все. Запускаем плагин, пишем и запускаем код. Результат работы:

Консоль в Figma можно открыть в меню Plugins -> Development -> Open console

Код данного примера вы найдете тут.

<< Часть 1 Hello World!!!

Источник: https://habr.com/ru/post/589819/


Интересные статьи

Интересные статьи

Ни для кого не секрет, что этот год — год удаленки и сидения дома, повлиял на все сферы бизнеса, включая сферу IT. Я расскажу в двух статьях, о том, что изменилось за этот год в целом,...
Привет, Хабр! Продолжаем туториал по библиотеке opencv в python. Для тех кто не читал первую часть, сюда: Часть 1, а всем остальным — увлекательного чтения! Читать дальше ...
В этой спонтанной статье решил поделиться опытом применения IBIS-моделей на примере простой задачи.
Продолжаем постигать современную магию (компьютерное зрение). Часть 2 не значит, что нужно сначала читать часть 1. Часть 2 значит, что теперь всё серьёзно — мы хотим понять всю мощь нейросетей в ...
В «1С-Битрикс» считают: современный интернет-магазин должен быть визуально привлекательным, адаптированным для просмотра с мобильных устройств и максимально персонализированным с помощью технологии Бо...