Токенизация в основном выполняется для того, чтобы CSS-селекторы для набора элементов, по которым щелкали, можно было объединить, чтобы найти общие черты. Затем алгоритм пытается найти «лучший» селектор, который содержит все в выбранном наборе и ничего в отклоненном наборе.
Это выглядит примерно так:
- Для каждого выбранного dom-узла сгенерируйте длинный, включающий css-селектор, который настолько специфичен, насколько это возможно.
- Различаем все селекторы выбранного узла dom вместе, чтобы найти общий селектор css, который выберет все из них.
- Итеративно уменьшайте этот общий селектор, гарантируя, что он выбирает все в наборе «выбранные» и ничего в наборе «отклоненных». Это происходит в 'simpifyCss' и является эвристическим подходом, который жадно удаляет элементы с предопределенным порядком предпочтения.