Первым для разработки была выбрана идея
E-mail Signature Generator (генератор красивых подписей для емейлов). Сделал SEO-материалы и даже получил медальку за это 🥈😁Но вот билд приложения до сих пор доделать не могу 🤦♂️ оценивал его как самый лёгкий проект из 3-х, но на практике оказалось всё сложнее:
— не нашёл полностью готовое open-source-решение (расширение для Chrome), но нашел парочку готовых проектов (веб-сайты, скрипты). Решил на их основе сделать самостоятельно;
— наиболее готовый проект был написан на Vue (с которым у меня опыта 0), поэтому решил, что возьму boilerplate на Vite + TypeScript + React для Chrome-расширений (офигительный к слову!). В реакт я умею уже, всё нравится, да и поддерживать потом будет проще, если написано всё будет аккуратно и с пространством для манёвра (писал про это тут);
— реализовал в общем-то всю нужную функциональность: можно добавить поля, задавать им типы, всё это собирается в HTML-шаблон подписи, который можно скопировать и вставить в email-клиент, есть даже сохранение состояния, но... застрял! И вот на чём:
Чтобы подпись можно было скопировать, вставить в email-клиент, и она отображалась там точно также, как юзер её видел в приложении, все стили должны быть заданы с помощью атрибута
style (вот неожиданность, да? Типа, все емейлы так верстаются). Но поскольку проект на React, мне придётся или компоненты подписи писать с inline-стилями (что можно, но не очень нравится, да и дольше будет интегрировать разные HTML-шаблончики потом), или настраивать Vite так, чтобы он делал это сам, но только для определённых компонентов.В итоге полдня потратил на поиск решения и пришёл к какому-то усреднённому варианту: писать что-то типа css-modules для каждого компонента подписи, а в Vite написать плагин, который будет брать эти стили и засовывать в
style (код похожего плагина я нашёл). Завтра утром посмотрю: если не удастся быстро всё заставить работать, плюну — напишу руками inline-стили и отправлю билд на проверку.Но хочется конечно сделать полуавтоматически хоть как-то, потому что руками расставлять все эти
border=0, cellpadding=0, cellspacing=0 — это боль.Разочарован немного собой и понимаю, что это мой косяк: нужно было максимально просто и дёшево взять что-то, наиболее подходящее для MVP, закомментить то что не нужно, и собрать билд (пусть даже пока на manifest v2). Всё-то мне хочется сделать красиво! Даже когда ещё не проверил, а нужно ли оно кому-то 😡
Учту это при создании двух других продуктов. Ехаем дальше.