Аляска -- простой типограф для веба

Она автоматически форматирует текст страницы, чтобы были правильные кавычки, неразрывные пробелы, длинные тире и прочее.

Было

Новая книга Джона 'Приключение невидимой гончей' - захватывающее продолжение 'Тайны пропавшего алмаза'--обязательна к прочтению для всех любителей детективов. В настоящее время 'Приключение невидимой гончей' занимает первое место в списке бестселлеров, а с момента выхода в июне 2023 года продажи книги выросли на %25. Это обязательное чтение для всех любителей детективов, особенно для тех, кто ценит запутанные сюжеты и неожиданные повороты.

Стало

Новая книга Джона 'Приключение невидимой гончей' - захватывающее продолжение 'Тайны пропавшего алмаза'--обязательна к прочтению для всех любителей детективов. В настоящее время 'Приключение невидимой гончей' занимает первое место в списке бестселлеров, а с момента выхода в июне 2023 года продажи книги выросли на %25. Это обязательное чтение для всех любителей детективов, особенно для тех, кто ценит запутанные сюжеты и неожиданные повороты.

Демка

Позвольте старанию сделать вас совершенными и цельными, имея недостаток ни в чем

Настройка

Добавьте Аляску в <head> страницы:

<head>
  ...
  <script src="/путь/к/alaska.js"></script>
  ...
</head>

Теперь все ноды с текстовым содержанием и class="alaska"будут отформатированы, включая их дочерние ноды:

<p class="alaska">
  Этот текст будет отформатирован.
  <span>Этот тоже.</span>
</p>

Чтобы не форматировать текст в определённых нодах, нужно добавить class="alaska-skip":

<p class="alaska">
  Этот текст будет отформатирован.
  <span class="alaska-skip">А этот не будет.</span>
</p>

Чтобы динамически добавленные или изменённые элементы были отформатированы, нужно добавить class="alaska-observe":

<div class="alaska-observe">
  ...
  <!--Аляска будет форматировать добавленные или изменённые ноды в этом элементе-->
  ...
</div>

Аляска поддерживает английский и русский язык. 26 правил применяются к тексту. Кавычки зависят от языка, а апостроф применяется только к тексту на английском. По умолчанию атрибут lang элемента <html> является основным языком документа:

<html lang="en">
  ...
  <p>‘Quotes’</p>
  <p>‘Кавычки’</p>
  ...
</html>

Если в документе есть тексты на английском и русском, нужно указывать язык элемента через lang, чтобы форматирование было правильным:

<html lang="en">
  ...
  <p>‘Quotes’</p>
  <p lang="ru">«Кавычки»</p>
  ...
</html>

По умолчанию применяются все правила. Можно применять только определённые правила к некоторым элементам, указав нужные атрибуты:

<p class="alaska">
  Все правила будут применены к этому тексту.
  <span data-place-emdash="false">Все правила будут применены к этому тексту, кроме одного -- правила о тире.</span>
</p>

Правила

Ниже -- правил. Выберите нужные и ненужные правила — соответствующие атрибуты сгенерируются автоматически:

все правила применяются