معرفی Nordwand Mono؛ فونت تکفضایی جدید و قابل برنامهنویسی با پایتون — Nordwand Mono – A monospace font for coders and adventurers
خلاصه
فونتمونو Nordwand Mono یک پروژه جدید و متنباز است که با الهام از فونتهای کلاسیک و مدرن برای توسعهدهندگان و محیطهای ترمینال و Neovim طراحی شده است. این فونت با پایتون توسعه یافته و به کاربران اجازه میدهد گلیفها و متریکها را به دلخواه سفارشیسازی و کامپایل کنند.
توسعهدهندگان نرمافزار معمولاً حساسیت ویژهای روی ابزارهای شخصیسازی محیط کار خود، به خصوص فونت ترمینال و ویرایشگرهایی مثل Neovim دارند. پروژه جدید Nordwand Mono که این روزها در هکرنیوز سر و صدای زیادی به پا کرده و امتیاز بالایی کسب نموده، پاسخی است به همین دغدغه؛ یک فونت تکفضایی (Monospace) و جمعوجور نئو-گروتسک (Neo-grotesk) که از ابتدا برای کدنویسی طراحی شده است.
درباره پروژه و فلسفه طراحی
سازنده این پروژه از عدم وجود فونت «کامل و ایدهآل» برای ترمینال شخصی خود خسته شده و تصمیم گرفته فونت دلخواهش را از صفر با پایتون پیادهسازی کند. ایده اصلی، ترکیب کردن المانهای کلاسیک فونت معروف Univers اثر Adrian Frutiger با نسبتهای مدرن فونت محبوب JetBrains Mono است. نام Nordwand نیز ادای احترامی است به کوهپایهها و تایپوگرافی سوئیسی، که با فضای سرد و مینیمال دیوارهای شمالی کوههای سوئیس همخوانی دارد.
در طراحی این فونت، از آثار دیگری مانند SF Pro و SF Mono از Apple، Alpes Mono از Sharp Type و Ubuntu Mono از Dalton Maag نیز الهام گرفته شده است.
جزئیات فنی و معماری پروژه
نکته جالب و متمایزکننده Nordwand Mono این است که با پایتون نوشته و تولید میشود. این پروژه صرفاً مجموعهای از فایلهای آماده فونت نیست، بلکه یک «جعبهشنی پایتونی» (Python Sandbox) برای ساخت و دستکاری فونت به شمار میرود:
- ساختار مبتنی بر شیء: هر گلیف از یک کلاس پایتونی مشتق میشود که میتوانید یک شیء زمینه ترسیم (Drawing Context) را به آن تزریق کنید.
- تنظیمات متریک: امکان شخصیسازی پارامترهایی مثل ارتفاع حروف کوچک (x-height) و ارتفاع حروف بزرگ (capital height) وجود دارد.
- لایگاتورها: سازنده این فونت رویکردی مینیمال نسبت به لیگاتورها دارد و فعلاً فقط دو لیگاتور پایه (
->و=>) را پیادهسازی کرده است.
نحوه استفاده و کامپایل شخصی
اگر بخواهید نسخه شخصیسازیشده خودتان از فونت را بسازید، مراحل کار در ریپازیتوری بسیار ساده در نظر گرفته شده است:
۱. ابتدا فایل config.example.yml را کپی کرده و با مقادیر دلخواه خود به config.yml تبدیل کنید.
۲. برای پیشنمایش و بررسی گلیفهای فردی میتوانید از دستور زیر استفاده کنید:
python -m visualize --config config.yml <glyph_id>
۳. در نهایت برای تولید نسخه نهایی فونت، دستور کامپایل را اجرا کنید:
python -m generate_font --config config.yml
فایلهای خروجی فونت در پوشه ./custom-fonts قرار خواهند گرفت.
وضعیت پروژه و دیدگاه جامعه هکرنیوز
این پروژه با لایسنس MIT منتشر شده و توانسته است در مدت کوتاهی بیش از ۶۰۰ ستاره در گیتهاب دریافت کند. در بحثهای هکرنیوز، نظرات جالبی پیرامون این فونت مطرح شد:
- برخی کاربران با مقایسه آن با JetBrains Mono اشاره کردند که شباهتهای زیادی بین آنها وجود دارد، هرچند تفاوتهای ظریفی در کاراکترهایی مثل
$،&و#دیده میشود. - عدهای دیگر آن را با فونتهای تجاری و معروف دیگری مثل Berkeley Mono یا پروژههای ترکیبی مانند Pragmasevka مقایسه کردند.
- خود سازنده نیز در بخش نظرات هکرنیوز حضور یافت و اشاره کرد که هدف اصلی، ارائه یک محیط پایتونی برای بازی با گلیفها و ترغیب دیگران به ارسال Pull Request و شخصیسازی فونتهاست.
در یک نگاه
- زبان اصلی: پایتون
- لایسنس: MIT
- وضعیت: متنباز، فعال و محبوب در گیتهاب
- ویژگی برجسته: قابلیت سفارشیسازی متریکها و گلیفها از طریق کدهای پایتون و فایلهای تنظیمات YAML
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل