Класс типографики (Typography Class)
Класс типографики предоставляет функции, которые помогают вам форматировать текст.
Инициализация класса
Как и большинство других классов в CodeIgniter, класс типографики инициализируется в вашем контроллере посредством функции $this->load->library:
$this->load->library('typography');
Загруженный класс библиотеки Typography доступен как $this->typography
auto_typography()
Форматирует текст в семантически и типографически корректный HTML. Принимает строку на вход и возвращает ее со следующим форматированием:
- Окружает абзацы тегами <p></p> (ищет двойные переносы строк для идентификации параграфов).
- Одиночные переносы строк конвертируются в <br />, за исключением тех, которые находятся внутри тегов <pre>.
- Блочные элементы, такие как <div>, не вписываются внутрь абзацев, но текст, содержащийся в них, обрамляется в абзацы.
- Кавычки конвертируются в корректные сущности, за исключением тех, которые находятся внутри тегов.
- Апострофы конвертируются в сущности.
- Двойные дефисы (вроде -- или--таких) конвертируются в em—тире.
- Три стоящих подряд точки, перед словом или сразу после него конвертируются в многоточие…
- Двойные пробелы конвертируются в непрерывные пробелы.
Пример использования:
$string = $this->typography->auto_typography($string);
Параметры
Есть один опциональный параметр, который определяет, должен ли парсер конвертировать множество переносов строк в один. Используйте булево TRUE или FALSE.
По умолчанию парсер не сокращает переносы. Другими словами, если параметр не передан, получается что-то вроде этого:
$string = $this->typography->auto_typography($string, FALSE);
Примечание: Форматирование текста может интенсивно использовать процессор, в частности если вы имеете большое количество контента, который нужно форматировать. Используйте эту функцию при сохранении текста в базу данных, и изучите страницу про кеширование ваших страниц.
format_characters()
Эта функция соответствует функции auto_typography, описанной выше, за исключением того, что она выполняет только символьные преобразования:
- Кавычки конвертируются в корректные сущности, исключая те, которые находятся внутри описания тегов.
- Апострофы конвертируются в сущности.
- Двойные дефисы конвертируются в — тире.
- Три точки подряд до или после слова конвертируются в многоточия…
- Двойные пробелы, следующие за предложениями, конвертируются в неразрывные пробелы.
Пример использования:
$string = $this->typography->format_characters($string);
nl2br_except_pre()
Конвертирует новые строки в теги <br />, за исключением содержимого в тегах <pre>. Эта функция идентична родной функции PHP nl2br(), за исключением того, что она игнорирует теги <pre>.
Пример использования:
$string = $this->typography->nl2br_except_pre($string);
protect_braced_quotes
При использовании класса Typography в сочетании с библиотекой парсера шаблонов Template часто может быть полезно заменять одиночные и двойные кавычки в сущности. Чтобы включить это, установите свойство класса protect_braced_quotes в TRUE.
Пример использования:
$this->load->library('typography');
$this->typography->protect_braced_quotes = TRUE;