классная новость:)
передаю слово автору
евгений агасьянц:
Когда-то давно я узнал что есть такая программа Glyphs.app. И я в нее влюбился. Она была красива. В этой программе буквы жили не в отдельных окнах, а в контексте текста. Это казалось чудом. И на это чудо у меня не было денег.
Есть у меня такая черта, если не могу купить — надо сделать самому. Создать инструмент, который я хочу. Делов-то, нарисовал буквы, что-то там еще и бац — шрифт готов. Конечно, не так все просто. Я открыл разок Xcode, и закрыл.
Другая черта — идеи ходят по кругу. И раз в год они возвращаются. И в прошлом году я решил сделать себе хобби. Я программирую разные штуки, и почему бы не сделать для этого хобби цель посерьезнее.
Так я начал делать шрифтовой редактор в вебе — хорошая задача, много чему интересному можно научиться.
Я разобрался с тем, как в браузере представить модель шрифта, как сделать инструменты, хоткеи, историю изменений, как рисовать и редактировать контур, как делить и объединять кривые, как набирать текст, как вставлять контур из иллюстратора.
Потом я разобрался как хранить все на сервере и сделал небольшой бекенд на руби-на-рельсах, сделал гостевой доступ и авторизацию через соцсети (почтовые уведомления — дорогая штука, кстати). Даже придумал, как прикрутить библиотеку на питоне, которая будет сохранять шрифтовой файл. И сохранил свой первый ttf-файл.
В какой-то момент решение небольших таких задачек стало вырисовываться в настоящее приложение. И появилась мысль, что если из этого может выйти что-то стоящее, не Glyphs.app конечно, но хотя бы лучше, чем Fontra или Glyphr?
Но решить такую задачу в одиночку почти невозможно. Нужно много сил, времени и ресурсов.
https://typlr.app
Мне нравятся буквы, я верю в веб-приложения, верю в бум PWA. И отлично понимаю, что таких редакторов не много, потому что их много и не надо.
передаю слово автору
евгений агасьянц:
Когда-то давно я узнал что есть такая программа Glyphs.app. И я в нее влюбился. Она была красива. В этой программе буквы жили не в отдельных окнах, а в контексте текста. Это казалось чудом. И на это чудо у меня не было денег.
Есть у меня такая черта, если не могу купить — надо сделать самому. Создать инструмент, который я хочу. Делов-то, нарисовал буквы, что-то там еще и бац — шрифт готов. Конечно, не так все просто. Я открыл разок Xcode, и закрыл.
Другая черта — идеи ходят по кругу. И раз в год они возвращаются. И в прошлом году я решил сделать себе хобби. Я программирую разные штуки, и почему бы не сделать для этого хобби цель посерьезнее.
Так я начал делать шрифтовой редактор в вебе — хорошая задача, много чему интересному можно научиться.
Я разобрался с тем, как в браузере представить модель шрифта, как сделать инструменты, хоткеи, историю изменений, как рисовать и редактировать контур, как делить и объединять кривые, как набирать текст, как вставлять контур из иллюстратора.
Потом я разобрался как хранить все на сервере и сделал небольшой бекенд на руби-на-рельсах, сделал гостевой доступ и авторизацию через соцсети (почтовые уведомления — дорогая штука, кстати). Даже придумал, как прикрутить библиотеку на питоне, которая будет сохранять шрифтовой файл. И сохранил свой первый ttf-файл.
В какой-то момент решение небольших таких задачек стало вырисовываться в настоящее приложение. И появилась мысль, что если из этого может выйти что-то стоящее, не Glyphs.app конечно, но хотя бы лучше, чем Fontra или Glyphr?
Но решить такую задачу в одиночку почти невозможно. Нужно много сил, времени и ресурсов.
https://typlr.app
Мне нравятся буквы, я верю в веб-приложения, верю в бум PWA. И отлично понимаю, что таких редакторов не много, потому что их много и не надо.
This media is not supported in your browser
VIEW IN TELEGRAM
иногда такое бывает))
очень люблю скрипт presenter за простой интерфейс кастомизации и работу внутри шрифтового редактора, а ещё больше люблю окно skedge (тоже марка фрёмберга) в котором можно как угодно настроить внешний вид точек и пути, который рисуешь,
но сегодня на глаза попался бесплатный скрипт для иллюстратора, который расставляет oncurve/offcurve точки и усы между ними. не идеал для отображения букв потому что не учитывает тип точек, но при желании js можно немного подправить под себя.
___________
го в комменты с мнениями о том какие точки стоят неправильно на этом примере
но сегодня на глаза попался бесплатный скрипт для иллюстратора, который расставляет oncurve/offcurve точки и усы между ними. не идеал для отображения букв потому что не учитывает тип точек, но при желании js можно немного подправить под себя.
___________
го в комменты с мнениями о том какие точки стоят неправильно на этом примере
шрифтонник typologie foundry.
чёрный с шрифтами французских слволитен, в красном швейцарские, а в синем британские
подробнее >тут<
чёрный с шрифтами французских слволитен, в красном швейцарские, а в синем британские
подробнее >тут<
обожаю рефакторинг от-фич. помогает упорядочить код, уменьшить размер и выявить пробелы в логике.
а ещё в процессе можно что-нибудь узнать. например, в заменах one_to_many, ссылка на класс может и не работать, и, чтобы всё правильно собиралось в итоговом файле, нужно объявлять класс в теле строки.
дальше на фрагменте добавления тонкой между точками в сокращениях и преобразования «д.п.н.» и «к.п.н.» в «д. п. н.« и «к. п. н.»
первый проход
и переношу общую часть повыше
оставшиеся две строки отличаются только первым знаком в последовательности, выношу их в класс:
фрагмент теперь выглядит так:
и всё бы здорово, но теперь этот блок перестал работать в редакторах.
поэтому объявляю класс в строке, а не ссылаюсь на него.
и в таком виде всё работает 🙂
в итоге вместо
в тексте фич остаётся
убрал 46 символов (почти 6 байт) из веса файла и сделал возможность добавления правил чуть удобнее, чем в жестких построчных решениях
а ещё в процессе можно что-нибудь узнать. например, в заменах one_to_many, ссылка на класс может и не работать, и, чтобы всё правильно собиралось в итоговом файле, нужно объявлять класс в теле строки.
дальше на фрагменте добавления тонкой между точками в сокращениях и преобразования «д.п.н.» и «к.п.н.» в «д. п. н.« и «к. п. н.»
первый проход
# д.п.—> д. п.
sub de-cy period' pe-cy period by period thinspace;
# п.н —> п. н.
sub pe-cy period' en-cy period by period thinspace;
# к.п.—> к. п.
sub ka-cy period' pe-cy period by period thinspace;
# а п.н. уже решено
и переношу общую часть повыше
# п.н. —> п. н.
sub pe-cy period' en-cy period by period thinspace;
# д.п.—> д. п.
sub de-cy period' pe-cy period by period thinspace;
# к.п.—> к. п.
sub ka-cy period' pe-cy period by period thinspace;
оставшиеся две строки отличаются только первым знаком в последовательности, выношу их в класс:
@AbbreviationsStart = [de-cy ka-cy ];
фрагмент теперь выглядит так:
# п.н. —> п. н.
sub pe-cy period' en-cy period by period thinspace;
# к.п. —> к. п. // д.п.—> д. п.
@AbbreviationsStart = [de-cy ka-cy ];
sub @AbbreviationsStart period' pe-cy by period thinspace;
и всё бы здорово, но теперь этот блок перестал работать в редакторах.
поэтому объявляю класс в строке, а не ссылаюсь на него.
# к//д.п.—> к//д. п.
sub [ka-cy de-cy] period' pe-cy by period thinspace;
и в таком виде всё работает 🙂
в итоге вместо
sub de-cy period' pe-cy period by period thinspace;
sub pe-cy period' en-cy period by period thinspace;
sub ka-cy period' pe-cy period by period thinspace;
в тексте фич остаётся
sub pe-cy period' en-cy period by period thinspace;
sub [ka-cy de-cy] period' pe-cy by period thinspace;
убрал 46 символов (почти 6 байт) из веса файла и сделал возможность добавления правил чуть удобнее, чем в жестких построчных решениях