Многим из вас знаком сайт fontello.com, который помогает делать иконочные шрифты для вебсайтов. Сегодня хочется вас познакомить с некоторыми полезными штуками, которые у него поместились под капотом. А именно — с конверторами шрифтов:
- svg2ttf: github.com/fontello/svg2ttf
- ttf2woff: github.com/fontello/ttf2woff
- ttf2eot: github.com/fontello/ttf2eot
Вы можете найти «в интернетах» много проектов, которые предлагают конвертировать форматы шрифтов, но все они так или иначе завязаны на FontForge. Он конечно работает, но не всегда так как хочется, и не всегда удобeн. Со временем накопились и другие причины для своих лисапедов:
- У фонтфоржа, при импорте картинок и конвертации форматов, с изображениями и фонтами бывают странности. Например, покоцанная ширина глифов у WOFF, недописанные хедеры у SVG и скейлинг импортированных картинок по высоте
- Не для всех платформ фонтфорж есть в виде готовых пакетов, а собирать из исходников муторно
- Есть планы добавить импорт кастомных иконок и фонтов. Через сервер это делать накладно, а отображать через костыли вроде рафаэля/куфона — путь в никуда. Да и покажут такие костыли не точно тоже самое, что вы получите в конечном результате.
В общем, захотелось все сделать на яваскрипте, с перспективой погонять код прямо в браузере. Конверторы в WOFF и EOT получились довольно быстро, т.к. файлы являются простыми контейнерами TTF/OpenType. А вот с генерацией TTF пришлось повозиться. Но вчера квест закончился, и код поехал в продакшен.
Возможно, эти конверторы окажутся полезными в ваших собственных проектах. Код на гитхабе, лицензия MIT. Удачи!
Автор: Vitaly