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

الخيارات

تأخذ جميع نقاط الدخول (codeToHtml وcodeToTokens وcodeToTokensResult وcodeToHast) مصفوفة الخيارات نفسها كوسيطها الثاني. ولا يلزم سوى lang ونسق ألوان.

lang

مطلوب. معرّف اللغة أو الاسم البديل المستخدم لتقسيم النص إلى رموز — php وts وjs وrust وpython وhtml وغيرها. تبرز القيمة الخاصة 'ansi' تسلسلات الهروب الطرفية بدلًا من استخدام قواعد نحوية (راجع ANSI).

PHP
['lang' => 'php']

theme

معرّف نسق ألوان واحد. مطلوب ما لم يُحدّد themes.

PHP
['lang' => 'php', 'theme' => 'github-dark']

themes

خريطة تربط المفاتيح بمعرّفات نسق الألوان لإخراج نسقين (أو أكثر) عبر متغيرات CSS. مطلوب ما لم يُحدّد theme.

PHP
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]

defaultColor

المفتاح في themes الذي يصبح لونًا افتراضيًا مضمنًا (وتصبح المفاتيح الأخرى متغيرات --shiki-<key> CSS). القيمة الافتراضية هي 'light'. اضبطه على false لإخراج المتغيرات فقط دون لون افتراضي مضمن — وهو مفيد عندما تتحكم بكل الألوان من CSS.

PHP
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']

transformers

قائمة من كائنات Shikiphp\Transformer\Transformer تُطبّق عبر المسار. راجع المحولات.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

['transformers' => [new NotationHighlight()]]

decorations

طبّق الأصناف أو السمات على نطاقات عشوائية من المصدر حسب موضع السطر والحرف. كل زخرفة هي {start, end, properties}، وتكون المواضع {line, character} (تبدأ من الصفر).

PHP
['decorations' => [
    [
        'start'      => ['line' => 0, 'character' => 0],
        'end'        => ['line' => 0, 'character' => 5],
        'properties' => ['class' => 'highlight'],
    ],
]]

colorReplacements

أعد تعيين الألوان في المخرجات. تستبدل إدخالات السلاسل لونًا في كل المواضع؛ أما الإدخالات المتداخلة المرتبطة باسم نسق ألوان فتُطبّق على ذلك النسق وحده.

PHP
['colorReplacements' => [
    '#ffffff'      => '#f8f8f2',          // global
    'github-dark'  => ['#24292e' => '#000'], // only in github-dark
]]

structure

يُخرج 'classic' (الافتراضي) بنية pre > code > span.line > span كاملة. أما 'inline' فيُخرج امتدادات الرموز فقط مع فواصل الأسطر، دون تغليف pre/code — وهو مفيد للمقاطع المضمنة.

PHP
['structure' => 'inline']

tabindex

سمة tabindex في عنصر <pre>. القيمة الافتراضية هي 0. مرّر false لحذفها.

PHP
['tabindex' => false]

cssVariablePrefix

البادئة المستخدمة لمتغيرات CSS ذات النسقين. القيمة الافتراضية هي '--shiki-'.

PHP
['cssVariablePrefix' => '--my-']

mergeWhitespaces

تتحكم في معالجة رموز المسافات البيضاء. تقوم true (الافتراضية) بدمج الرموز التي تحتوي على مسافات بيضاء فقط في الرمز التالي؛ وتقسم 'never' المسافات البيضاء في بداية كل رمز ونهايته إلى رموز مستقلة؛ بينما تترك false الرموز كما هي.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

تخطَّ تقسيم النص إلى رموز (وأخرج رمزًا نصيًا عاديًا واحدًا) لأي سطر يبلغ هذا الطول أو يتجاوزه، بوحدات UTF-16. لا يوجد حد افتراضيًا. يقي ذلك من المدخلات المرضية ذات السطر الواحد.

PHP
['tokenizeMaxLineLength' => 1000]

meta

بيانات وصفية عشوائية تُمرّر إلى المحولات عبر سياق المحول — مثل سلسلة البيانات الوصفية لسياج التعليمات البرمجية التي يستهلكها MetaHighlight وMetaWordHighlight.

PHP
['meta' => ['__raw' => '{1,3-5}']]

grammarState

علامة Shikiphp\GrammarState (من getLastGrammarState) لاستئناف تقسيم النص إلى رموز منها. يجب أن تتطابق lang وtheme(s) المحفوظتان. راجع getLastGrammarState.