ترابط Cython مبسط لمحرك تشكيل Harfbuzz.
import sys
import uharfbuzz as hb
fontfile = sys . argv [ 1 ]
text = sys . argv [ 2 ]
blob = hb . Blob . from_file_path ( fontfile )
face = hb . Face ( blob )
font = hb . Font ( face )
buf = hb . Buffer ()
buf . add_str ( text )
buf . guess_segment_properties ()
features = { "kern" : True , "liga" : True }
hb . shape ( font , buf , features )
infos = buf . glyph_infos
positions = buf . glyph_positions
for info , pos in zip ( infos , positions ):
gid = info . codepoint
glyph_name = font . glyph_to_string ( gid )
cluster = info . cluster
x_advance = pos . x_advance
x_offset = pos . x_offset
y_offset = pos . y_offset
print ( f" { glyph_name } gid { gid } = { cluster } @ { x_advance } , { y_offset } + { x_advance } " )عند بناء حزمة UharfBuzz ، فإنه يدمج تلقائيًا مصادر HarfBuzz الحد الأدنى حتى لا تضطر إلى تثبيت مكتبة Harfbuzz الأصلية.
ومع ذلك ، إذا كنت ترغب في استخدام uharfbuzz مع HarfBuzz المقدمة من النظام (على سبيل المثال ، إذا قمت بإنشائها من مصادر ذات تكوين مخصص) ، فيمكنك تعيين USE_SYSTEM_LIBS=1 متغير البيئة (انظر المثال أدناه).
USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz: تم العثور على تثبيت HarfBuzz باستخدام pkg-config ، لذلك يجب أن يكون لديك ملفات .pc 's HarfBuzz في نظامك. إذا قمت بإنشائها من مصادر ، يقوم Meson بتثبيتها تلقائيًا. خلاف ذلك ، قد ترغب في تثبيت حزمة تطوير HarfBuzz ، مثل harfbuzz-devel على التوزيع المشتق من Fedora.
ملاحظة: يجب عليك بناء Harfbuzz مع تمكين دعم API التجريبي.
استخدم git tag -a لإنشاء علامة مشروحة جديدة ، أو git tag -s لعلامة مشروح من GPG ، إذا كنت تفضل ذلك.
قم بتسمية العلامة الجديدة مع "V" رائدة تليها Three Major.Minor.patch ، كما هو الحال في الإصدار الدلالي. انظر إلى العلامات الحالية للأمثلة.
في رسالة العلامة ، اكتب بعض ملاحظات الإصدار القصير التي تصف التغييرات منذ العلامة السابقة. سيكون سطر الموضوع هو اسم الإصدار وسيكون جسم الرسائل هو ملاحظات الإصدار.
أخيرًا ، ادفع العلامة إلى المستودع البعيد (على سبيل المثال على افتراض أن المنبع يسمى الأصل):
$ git push origin v0.4.3
سيؤدي ذلك إلى قيام CI بإنشاء حزم التوزيع وتحميلها إلى فهرس حزمة Python تلقائيًا ، إذا نجحت جميع الاختبارات بنجاح. ستقوم CI أيضًا بإنشاء إصدار GitHub جديد تلقائيًا واستخدام محتوى علامة GIT المشروحة لملاحظات الإصدار.