Font Service
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
README.md

README.md

مقدمه

پس از طی مراحل ساخت یک قلم، نوبت به تولید نسخه‌های گوناگون برای حالات متنوع می‌رسد. برای مثال ادغام با قلم‌های لاتین یا بازنویسی ارقام لاتین/عربی با فارسی و غیره. علاوه بر آن ترکیب این حالت‌ها نیز با هم می‌تواند منجر به تعداد بسیار زیادی فایل خروجی گردد که جمع‌آوری همه آن‌ها در یک بسته واحد امری دشوار و پرمشغله خواهد بود. این موضوع با توجه به درخواست ‌های متعدد و متنوعی که از طراح می‌شود اهمیت پیدا کرده است.

این سند به بررسی موضوع بالا می‌پردازد. لطفا نظرات خود را در قمست ایشو‌ها بیان فرمایید.
https://github.com/rastikerdar/fontservice/issues
محتوای این سند نیز قابل تغییر یا اصلاح می‌باشد.

راهکار

ایجاد یک سرویس تحت وب تولیدِ نسخه از فایل فونت: به این صورت که آدرس یا خود فونت را به آن بدهیم و به همراه آن تمامی حالاتی که مد نظرمان است را انتخاب کنیم تا برایمان بسته‌ای از فایل‌های مربوطه را ایجاد کند. ورودی می‌تواند فرمت‌های گوناگون باشد:

sdf, ttf, woff, otf, ...

و خروجی نیز به همین صورت. برای مثال از سرویس می‌خواهیم از فایل فونت ساحل، نسخه‌های لازم برای حالت‌های ارقام با عرض یکسان شامل فایل‌های وب در ترکیب با قلم اوپن سنس را ایجاد و در یک بسته فشرده ارائه دهد.

اهداف

  • رفع مشکل طراحان و مشتریان فونت در زمینه فایل‌های خروجی
  • انجام یک پروژه ساده به صورت بازمتن بوسیله ابزارها و تکنولوژی‌های مناسب و بهره‌گیری از الگوهای مدرن
  • یک تجربه بامزه

ملاحظات

موارد زیر در حال حاضر مد نظر نمی‌باشد

  • شبکه توزیع/تحویل محتوای فونت
  • سایت جستجو، نمایش یا مقایسه فونت‌ها برای موارد فوق وب‌سایت های گوناگونی وجود دارد.

نکات

  • برنامه اصلی فونت فورج دارای رابط برنامه‌نویسی پایتون می‌باشد. هرچند که خود آن به زبان سی نوشته شده. خوشبختانه نسخه بدون وابستگی به محیط گرافیکی آن برای نصب در سرور مناسب می‌باشد. از این برنامه برای اعمال تغییرات بر روی فونت استفاده می‌شود. و باز هم خوشبختانه برخی توابع لازم برای نیازهای این سرویس از قبل نوشته شده است.
    https://github.com/rastikerdar/fontbuilder
  • علاوه بر فونت‌فورج برنامه‌های زیر نیز قابلیت‌های تغییر فونت را دارا می‌باشند:
    Python https://github.com/fonttools/fonttools
    Nodejs https://github.com/devongovett/fontkit/
  • برنامه اتوهینت به صورت یک باینری (یک دستور) برای ایجاد یا اعمال داده‌های هینتینگ در سمت سرور قابل اجرا می‌باشد.
    https://www.freetype.org/ttfautohint/
  • برنامه‌های تولید خروجی woff، eot و امثالهم همگی ساده، کم‌حجم و به صورت باینری در سمت سرور قابل اجرا می‌باشند.
  • به نظر می‌آید هیچ گونه مشکل یا چالش جدی‌ای برای پیاده‌سازی این سرویس وجود ندارد.

خروجی‌های مورد انتظار

  • بدون قلم لاتین
  • ادغام با قلم لاتین دلخواه
  • ادغام با هر نوع قلمی چه لاتین چه غیر لاتین (شاید بتوان این مورد را جایگزین مورد بالا نمود)
  • تمام ارقام فارسی (تبدیل عربی و لاتین به فارسی)
  • مناسب موبایل با ارتفاع کم
  • ارقام با عرض یکسان (مناسب برای محیط‌هایی که با ارقام سر و کار دارند به ویژه حالتی که عددها زیر هم قرار می‌گیرند)
    https://github.com/IranOpenFontGroup/Discussions/issues/13
    البته در این سرویس این ويژگی به صورت یک فیچر اوپن تایپ اعمال نمی‌شود بلکه عرض همه گلیف‌های ارقام در خود فونت یکی می‌شود.
  • فایل‌های ttf، woff2، woff، eot
  • با یا بدون هینتینگ

قابلیت‌های سرویس (نمای کلی)

  • در صفحه اصلی وب‌سایت بتوان آدرس یک یا چند فایل فونت را وارد یا فایل فونت‌های دلخواه را آپلود نمود (لازم)
  • انواع محتویاتی که برای بسته‌بندی مورد نیاز است را انتخاب نمود (لازم)
  • برای راحتی، فونت‌هایی که از پیش تعریف شده (آخرین نسخه) را هم بتوان انتخاب نمود (اختیاری تاکیدی)
  • آمار دانلودها و محبوب‌ترین‌ها را مشاهده نمود (اختیاری)
  • در صورت امکان، پیش‌نمایشی از فونت‌ با متن دلخواه را مشاهده نمود (اختیاری)

Backend

  • Nodejs, Python, Go, ...
  • Nginx, ...
  • Datastore (JSON, Sqlite, ...)

Frontend

  • UI (Bootstrap, Material UI, Semantic UI, ...)
  • Javascript (Vuejs, React, Jquery, ...)

Dev Tools

  • Git
  • VSCode
  • Docker

Domain and Host

تاریخ ایجاد سند: شنبه ۲۰ آبان ۱۳۹۶