Парсинг таблицы стилей

Таблица стилей Sass анализируется из последовательности кодовых точек Unicode. Он анализируется напрямую, без предварительного преобразования в поток токенов.

Input Encoding permalinkInput Encoding

Совместимость:
Dart Sass
LibSass
Ruby Sass

Dart Sass в настоящее время поддерживает только кодировку UTF-8. Таким образом, безопаснее всего кодировать все таблицы стилей Sass как UTF-8.

Часто бывает, что документ изначально доступен только как последовательность байтов, которую необходимо декодировать в Unicode. Sass выполняет это декодирование следующим образом:

  • Если последовательность байтов начинается с UTF-8 или UTF-16 кодировки U+FEFF BYTE ORDER MARK, используется соответствующая кодировка.

  • Если последовательность байтов начинается с простой строки ASCII @charset, Sass определяет кодировку, используя шаг 2 алгоритма CSS для определения резервной кодировки.

  • В противном случае используется UTF-8.

Разбор ошибок permalinkРазбор ошибок

Когда Sass обнаруживает недопустимый синтаксис в таблице стилей, синтаксический анализ завершается неудачно, и пользователю будет представлена ошибка с информацией о местонахождении недопустимого синтаксиса и причине, по которой он был недопустимым.

Обратите внимание, что это отличается от CSS, который указывает, как исправить большинство ошибок, а не сразу после сбоя. Это один из немногих случаев, когда SCSS не является строго надмножеством CSS. Однако пользователям Sass гораздо полезнее сразу видеть ошибки, а не передавать их в вывод CSS.

Доступ к местоположению ошибок синтаксического анализа можно получить через API, зависящие от реализации. Например, в Dart Sass вы можете получить доступ к SassException.span, а в Node Sass и Dart Sass JS API вы можете получить доступ к свойствам file, line и column.