Хотите исправить «разрыв слов», чтобы он работал с пунктуацией без ASCII и пробелами - PullRequest
0 голосов
/ 13 марта 2019

Я хочу исправить функциональность свойства css word-break. В настоящее время он не разбивается на пробелы и знаки препинания, которые не являются ascii. ”” Должно быть таким же, как «», точно так же, как «、» должно быть так же, как «,».

Не уверен, как сделать так, чтобы такое изменение произошло. Кто-нибудь знает, к кому можно обратиться или есть репозиторий, к которому я могу получить доступ?

1 Ответ

0 голосов
/ 13 марта 2019

W3C спецификация разрыва строки состояния

В большинстве систем записи при отсутствии переноса возможность мягкого переноса возникает только на границах слов.Многие такие системы используют пробелы или знаки препинания для явного разделения слов, и по этим символам можно определить возможности мягкого переноса.

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


Если у вас есть определенный список символов, которые вы хотите обернуть, вы можете использовать JavaScript, чтобы окружить их тегами для переноса.

punctuation = [ '”' ];

var paragraphs = document.querySelectorAll( 'p' );
for ( var p = 0; p < paragraphs.length; p++ ) {
    for ( var j = 0; j < punctuation.length; j++ ) {
        var re = new RegExp(punctuation[j], "g"),
            text = paragraphs[ p ].innerHTML;
        paragraphs[ p ].innerHTML = text.replace(re, '<wb>' + punctuation[j] + '</wb>');
    }
}
wb {
    display: inline-block;
}
<p>averylongworldconsistingof”words”runtogether”withsomenonbreaking”characters”averylongworldconsistingof”words”runtogether”withsomenonbreaking”characters”averylongworldconsistingof”words”runtogether”withsomenonbreaking”characters”averylongworldconsistingof”words”runtogether”withsomenonbreaking”characters</p>
...