Библиотека Carbon Components Svelte предоставляет
готовые компоненты для отображения кода и сниппетов кода с поддержкой
различных режимов, синтаксиса и взаимодействия с пользователем. Два
ключевых компонента — Code и CodeSnippet —
обеспечивают гибкость в визуализации кода на странице и позволяют легко
интегрировать функциональность копирования и подсветки.
CodeКомпонент Code предназначен для отображения коротких
фрагментов кода прямо в тексте. Он используется для встроенных примеров,
небольших выражений и переменных.
Основные свойства:
type — определяет вид отображения. Допустимые
значения:
"single" — однострочный код."inline" — встроенный код в тексте.class — дополнительный CSS-класс для кастомизации
стиля.
text — строка кода для отображения.
Пример использования:
Пример использования переменной:
Особенности:
CodeSnippetCodeSnippet — более мощный компонент для отображения
крупных блоков кода. Он поддерживает несколько режимов, функционал
копирования и расширяемость.
Ключевые свойства:
type — режим отображения:
"single" — однострочный блок с возможностью
копирования."multi" — многострочный блок с кнопкой
копирования."inline" — встроенный блок в тексте.copyButtonFeedback — текст подтверждения после
копирования, по умолчанию "Copied!".
feedbackTimeout — время отображения подтверждения
копирования в миллисекундах.
wrap — включает перенос длинных строк кода.
light — переключение светлой темы
отображения.
disabled — блокирует возможность
копирования.
Пример использования однострочного сниппета:
Пример многострочного сниппета:
Функциональность:
single и multi.Для кастомизации CodeSnippet можно использовать
CSS-переменные и дополнительные классы. Например, для изменения цвета
фона и рамки:
.my-code-snippet {
--cds-background: #f5f5f5;
--cds-border-color: #cccccc;
font-family: 'Fira Code', monospace;
}
И подключение к компоненту:
Интеграция с подсветкой синтаксиса:
innerHTML.{@html highlightedCode} с безопасным экранированием
символов.Code и
CodeSnippet| Функция | Code | CodeSnippet |
|---|---|---|
| Короткий встроенный код | Да | Ограничено |
| Многострочный код | Нет | Да |
| Кнопка копирования | Нет | Да |
| Поддержка подсветки | Через CSS | Через CSS или сторонние библиотеки |
| Настройка темы | Минимальная | Полная, поддержка light/dark |
Code.CodeSnippet.