Швидкий брудний пост. Я під час розробки на PHP іноді користуюсь show_source()
. Ну, знаєте, буває треба показати код і при цьому хоч якось підсвітити синтаксис, не встановлюючи тонну зовнішніх залежностей.
Так, це анахронізм часів PHP4. І так, за замовчанням кольори там розраховані на світле тло. Якщо у вас сайт з темним фоном, то можна поміняти кольори на щось відповідне, але це все трошки бісить.
А що як у нас сучасна адаптивна кольорова схема?
<meta name="color-scheme" content="light dark">
Тоді у нас взагалі не може бути фіксованих кольорів, бо має одночасно існувати і варіант для темної схеми, і варіант для світлої.
Спробував через змінні CSS. Погнали.
Пишемо в php.ini
щось таке:
highlight.default = "var(--php-default)"
highlight.html = "var(--php-html)"
highlight.keyword = "var(--php-keyword)"
highlight.string = "var(--php-string)"
highlight.comment = "var(--php-comment)"
Або, якщо змінювати php.ini
незручно, робимо це в runtime в PHP:
foreach (['default', 'html', 'keyword', 'string', 'comment'] as $key) {
ini_set('highlight.' . $key, 'var(--php-' . $key . ')');
}
І тепер нам треба приблизно отакий CSS:
:root {
--php-comment: #f800;
--php-default: #00b;
--php-html: #000;
--php-keyword: #070;
--php-string: #d00;
}
@media (prefers-color-scheme: dark) {
:root {
--php-comment: #860;
--php-default: #66f;
--php-html: #ccc;
--php-keyword: #0f3;
--php-string: #fc0;
}
}
Всьо, пофарбували, порядок :)