انتقل إلى المحتوى

CLI

يوفر shikiphp أداة صغيرة لسطر الأوامر في bin/shikiphp (تُثبّت باسم vendor/bin/shikiphp في مشروعك). وتضم ثلاثة أوامر: يعرض highlight ملفًا واحدًا في HTML، بينما يسرد langs وthemes محتويات الحزمة.

highlight

ميّز ملفًا واحفظ الناتج في HTML، مع طباعته إلى stdout.

سطر الأوامر
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — المسار المراد قراءته. يجب أن يكون ملفًا موجودًا؛ لا تُقرأ المدخلات القياسية.
  • --lang — معرّف اللغة أو الاسم البديل. إذا لم يُحدَّد، يُستخدم امتداد الملف كما هو بوصفه المعرّف (ويُستخدم txt إن لم يوجد امتداد).
  • --theme — معرّف السمة. القيمة الافتراضية هي github-dark.
سطر الأوامر
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

الناتج هو كتلة <pre class="shiki …"> ذات سمة واحدة، مثل التي يعيدها codeToHtml، متبوعة بسطر جديد، لذا يمكن توجيهها مباشرةً إلى ملف:

سطر الأوامر
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html

لا يقبل الأمر خيارات أخرى. للسمات المزدوجة أو المحولات أو أي خيار آخر، استدعِ PHP API بدلًا منه.

الخيارات والمعاملات

يجب أن تكون الخيارات بصيغة --name=value. يُتجاهل أي معامل آخر يبدأ بـ --، ويُعتمد آخر معامل لا يبدأ بـ -- بوصفه الملف. لذلك يميّز --lang php file.rs الملف file.rs بلغة Rust: يُتجاهل --lang، ويُستبدل php بـ file.rs، وتُستنتج اللغة من امتداد .rs.

استنتاج اللغة

من دون --lang، يصبح الامتداد معرّف اللغة كما هو. وينجح ذلك عندما يكون الامتداد نفسه معرّفًا مضمّنًا أو اسمًا بديلًا — php، وjs، وts، وtsx، وpy، وrs، وgo، وmd، وyml، وjson، وsh، وغيرها الكثير (راجع اللغات). لكنه لا ينجح في الحالات التالية:

  • الملفات بلا امتداد، مثل Makefile أو Dockerfile، والتي تستخدم txt كقيمة بديلة؛
  • الامتدادات التي لا تطابق معرّف لغة، مثل .txt.

txt ليست لغة مضمّنة، لذا تنتهي الحالتان حاليًا بخطأ Unknown language "txt" (#3). مرّر --lang لهذه الملفات:

سطر الأوامر
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make

langs

اطبع كل معرّف تقبله الحزمة كلغة، واحدًا في كل سطر.

سطر الأوامر
vendor/bin/shikiphp langs

تضم القائمة 350 سطرًا: معرّفات القواعد الـ253 المضمّنة بترتيب الحزمة (لا أبجديًا)، تليها الأسماء البديلة الـ97 (js، وcjs، وmjs، وهكذا). تشمل معرّفات القواعد 18 قاعدة مساعدة تضمنها قواعد أخرى، مثل vue-directives وes-tag-css؛ راجع اللغات للفهرس الذي يضم الأسماء والأسماء البديلة. مرّر النتائج عبر sort للحصول على قائمة أبجدية.

themes

اطبع معرّفات كل السمات المضمّنة، واحدًا في كل سطر، بترتيب أبجدي (65 سمة).

سطر الأوامر
vendor/bin/shikiphp themes

راجع السمات للفهرس الذي يضم الأسماء وأنواع السمات الفاتحة والداكنة.

المساعدة ورمز الخروج

شغّل دون أمر، أو باستخدام -h / --help / help، لعرض تعليمات الاستخدام.

سطر الأوامر
vendor/bin/shikiphp --help
الحالة الناتج رمز الخروج
نجاح أو مساعدة stdout 0
أمر غير معروف Unknown command: <name> على stderr 1
highlight دون ملف، أو عندما لا يكون الملف موجودًا سطر الاستخدام على stderr 1
لغة أو سمة غير معروفة خطأ Shikiphp\Exceptions\Highlight غير ملتقط (خطأ فادح PHP مع تتبع المكدس) 255