الخيارات
تأخذ جميع نقاط الدخول (codeToHtml وcodeToTokens وcodeToTokensResult وcodeToHast) مصفوفة الخيارات نفسها كوسيطها الثاني. ولا يلزم سوى lang ونسق ألوان.
lang
مطلوب. معرّف اللغة أو الاسم البديل المستخدم لتقسيم النص إلى رموز — php وts وjs وrust وpython وhtml وغيرها. تبرز القيمة الخاصة 'ansi' تسلسلات الهروب الطرفية بدلًا من استخدام قواعد نحوية (راجع ANSI).
['lang' => 'php']
theme
معرّف نسق ألوان واحد. مطلوب ما لم يُحدّد themes.
['lang' => 'php', 'theme' => 'github-dark']
themes
خريطة تربط المفاتيح بمعرّفات نسق الألوان لإخراج نسقين (أو أكثر) عبر متغيرات CSS. مطلوب ما لم يُحدّد theme.
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
defaultColor
المفتاح في themes الذي يصبح لونًا افتراضيًا مضمنًا (وتصبح المفاتيح الأخرى متغيرات --shiki-<key> CSS). القيمة الافتراضية هي 'light'. اضبطه على false لإخراج المتغيرات فقط دون لون افتراضي مضمن — وهو مفيد عندما تتحكم بكل الألوان من CSS.
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
transformers
قائمة من كائنات Shikiphp\Transformer\Transformer تُطبّق عبر المسار. راجع المحولات.
use Shikiphp\Transformer\Notation\NotationHighlight;
['transformers' => [new NotationHighlight()]]
decorations
طبّق الأصناف أو السمات على نطاقات عشوائية من المصدر حسب موضع السطر والحرف. كل زخرفة هي {start, end, properties}، وتكون المواضع {line, character} (تبدأ من الصفر).
['decorations' => [
[
'start' => ['line' => 0, 'character' => 0],
'end' => ['line' => 0, 'character' => 5],
'properties' => ['class' => 'highlight'],
],
]]
colorReplacements
أعد تعيين الألوان في المخرجات. تستبدل إدخالات السلاسل لونًا في كل المواضع؛ أما الإدخالات المتداخلة المرتبطة باسم نسق ألوان فتُطبّق على ذلك النسق وحده.
['colorReplacements' => [
'#ffffff' => '#f8f8f2', // global
'github-dark' => ['#24292e' => '#000'], // only in github-dark
]]
structure
يُخرج 'classic' (الافتراضي) بنية pre > code > span.line > span كاملة. أما 'inline' فيُخرج امتدادات الرموز فقط مع فواصل الأسطر، دون تغليف pre/code — وهو مفيد للمقاطع المضمنة.
['structure' => 'inline']
tabindex
سمة tabindex في عنصر <pre>. القيمة الافتراضية هي 0. مرّر false لحذفها.
['tabindex' => false]
cssVariablePrefix
البادئة المستخدمة لمتغيرات CSS ذات النسقين. القيمة الافتراضية هي '--shiki-'.
['cssVariablePrefix' => '--my-']
mergeWhitespaces
تتحكم في معالجة رموز المسافات البيضاء. تقوم true (الافتراضية) بدمج الرموز التي تحتوي على مسافات بيضاء فقط في الرمز التالي؛ وتقسم 'never' المسافات البيضاء في بداية كل رمز ونهايته إلى رموز مستقلة؛ بينما تترك false الرموز كما هي.
['mergeWhitespaces' => 'never']
tokenizeMaxLineLength
تخطَّ تقسيم النص إلى رموز (وأخرج رمزًا نصيًا عاديًا واحدًا) لأي سطر يبلغ هذا الطول أو يتجاوزه، بوحدات UTF-16. لا يوجد حد افتراضيًا. يقي ذلك من المدخلات المرضية ذات السطر الواحد.
['tokenizeMaxLineLength' => 1000]
meta
بيانات وصفية عشوائية تُمرّر إلى المحولات عبر سياق المحول — مثل سلسلة البيانات الوصفية لسياج التعليمات البرمجية التي يستهلكها MetaHighlight وMetaWordHighlight.
['meta' => ['__raw' => '{1,3-5}']]
grammarState
علامة Shikiphp\GrammarState (من getLastGrammarState) لاستئناف تقسيم النص إلى رموز منها. يجب أن تتطابق lang وtheme(s) المحفوظتان. راجع getLastGrammarState.