• Stars
    star
    100
  • Rank 339,649 (Top 7 %)
  • Language
    PHP
  • License
    Other
  • Created about 13 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Класс для автоматического применения правил русской типографики для веб

Типограф (PHP5)

Авторы:

При создании типографа помимо личного опыта использовались:

Спасибо:

… и всем, кто пользуется типографом и сообщает об ошибках.

Отдельное спасибо Max-у за плагин к Wordpress.

На данный момент типограф умеет:

  • Обрабатывать тексты в различных кодировках(требуется iconv).
  • Заменять кавычки на ёлочки.
  • Склеивать двойные кавычки.
  • Заменять знак дефиса или два знака дефиса подряд — на знак длинного тире.
  • Заменять знак дефиса, ограниченный с обоих сторон цифрами — на знак короткого тире.
  • Заменять множество пробелов или табуляций на один пробел.
  • Заменять х в выражениях вроде 10x10 на знак умножения.
  • Исправлять неправильную расстановку запятых.
  • Разносить неправильно расставленные кавычки.
  • Вставлять неразрывный пробел после инициалов, сцеплять инициалы.
  • Делать неразрывными названия организаций и аббревиатуры форм собственности.
  • Делать неразрывными имя собственное и относящееся к нему сокращение.
  • Не разделять 2007 г., ставить пробел, если его нет.
  • Сцеплять скобки со словами.
  • Заменять 1/2 1/4 3/4 на спецсимволы.
  • Следить за тем, чтобы предлоги и союзы не находились в конце строки.
  • Следить за тем, чтобы частицы бы, ли, же и т.д. не отрывались от предшествующего слова.
  • Форматировать русские денежные суммы, расставляя пробелы в нужных местах.
  • Заменять от 3-х до 5-и точек подряд на троеточие.
  • Притягивать к слову запятые, отделять пробелом от последующего слова.
  • Притягивать к слову восклицательный знак.
  • Делать замену для +-.
  • Обрабатывать вложенные кавычки.
  • Притягивание чисел к знаку умножения.
  • Запятые до «а» и «но».
  • Притягивание «;» к предшествующему слову.
  • Убирает лишние знаки: «??» в «?», «!!!!» в «!!!».
  • Правильные апострофы в «LO'Лайт».
  • Прямая речь.
  • Неразрывные IP-адреса.

Использование класса

Простой пример:

require_once('Typographus.php');
$typo = new Typographus();
$text = $typo->process($text);

Для обработки текста в кодировке, отличной от WINDOWS-1251, укажите кодировку в конструкторе(требуется iconv):

$typo = new Typographus('UTF-8');

Если возникнет необходимость не обрабатывать текст внутри какого-либо блока — добавьте его при помощи метода addSafeBlock():

$typo->addSafeBlock('<clear>', '</clear>');

Для задания полностью своего набора безопасных блоков можно сначала очистить набор блоков:

$typo->removeAllSafeBlocks(); 

Если вам понадобится изменить символы замены, воспользуйтесь методом setSym():

$typo->setSym('nbsp', '&nbsp;');

Если хотите, чтобы все буквы ё менялись автоматом на е:

$typo->setOpt(Typographus::CONVERT_E, true);

Если хотите, чтобы спец-знаки были выведены как HTML-сущности:

$typo->setOpt(Typographus::HTML_ENTITIES, true);

Использование типографа в Smarty

Вместе с классом типографа в архиве вы можете найти плагины для Smarty. Скопируйте их в вашу папку plugins.

Если вы хотите подключить постфильтр Smarty (т.е. обработать всю страницу уже после её формирования) — пишем при инициализации Smarty:

$smarty->load_filter('output', 'typograph');

Данный подход не рекомендуется использовать т.к. использование может сказаться на производительности.

Если вам необходимо обработать конкретную переменную - применеям модификатор в шаблоне:

{$text|typograph}

Использование типографа в WordPress, Drupal, CakePHP, Invision Power Board

В архиве прилагаются инструкции и необходимые файлы.

More Repositories

1

yii2-cookbook

Yii 2.0 Community Cookbook
Makefile
1,439
star
2

sitemap

Sitemap and sitemap index builder
PHP
525
star
3

yii2-shop

Example project implementing simple shop using Yii 2.0
PHP
456
star
4

the-modal

Proper modal boxes
JavaScript
307
star
5

opensource-hate

Hate in OpenSource
281
star
6

yii2-webshell

Web shell allows to run yii console commands using a browser
PHP
225
star
7

php-fpm_tuner

A script to tune PHP-FPM
PHP
160
star
8

yii2-minimal

Yii 2 minimal application template
PHP
139
star
9

intellij-visual-studio-code-dark-plus

Visual Studio Code Dark Plus theme for JetBrains IDEs
135
star
10

hydrator

Allows extracting data from objects and getting objects from data
PHP
116
star
11

yiifeed

Pre-moderated news aggregator
CSS
103
star
12

Yeeki

Yii 1.1-based wiki
PHP
96
star
13

yiipowered

Yii powered websites showcase
PHP
91
star
14

yiiframework_ru_cookbook

Russian Yii 1.1 cookbook
85
star
15

yii-application-cookbook-2nd-edition-code

Code of the second edition of Yii Application Development Cookbook
PHP
82
star
16

yii2-psr-log-target

Yii 2.0 log target that is able to write messages to PSR-3 compatible logger
PHP
80
star
17

realpath_cache_tuner

Simple script that helps tuning PHP realpath cache
PHP
77
star
18

wnmp-dev

Development environment: Windows + nginx + MySQL + PHP
Batchfile
52
star
19

yiiframework-ru

yiiframework.ru
PHP
52
star
20

codemirror-autosuggest

CodeMirror autosuggest addon
JavaScript
47
star
21

intl-icu-data-tables

PHP intl extension, ICU data tables
PHP
37
star
22

codemirror-buttons

CodeMirror buttons addon
JavaScript
31
star
23

yii-jobs

A module and an application for Yii that provides a job-portal-like functionality
PHP
29
star
24

yii2-league-oauth2-server

Yii 2.0 implementation of PHP league OAuth2 server interfaces
PHP
28
star
25

slides

Alexander Makarov conference slides
HTML
26
star
26

a-guide-to-yii-grids-lists-and-data-providers

A guide to Yii framework grids, lists and data providers
25
star
27

yii-db-profiler

Yii profiler adjusted to deal with MySQL performance optimizations
PHP
24
star
28

icls-vs-code-dark-plus

Visual Studio Code Dark Plus-like color scheme for PhpStorm and other JetBrains IDEs
23
star
29

yii-fullajax

fullajax Yii playground
PHP
21
star
30

sack

This package implements "0-1 Knapsack Problem" algorithm i.e. allows to find the best way to fill a knapsack of a specified volume with items of a certain volume and value.
PHP
9
star
31

samdark

8
star
32

yii2-iconized-menu-widget

Menu with favicons for each item.
PHP
8
star
33

yiiframework-ru-phpbb-style

yiiframework.ru phpBB forum style
CSS
7
star
34

markdownru

markdown.ru website
PHP
7
star
35

github-actions-cookbook

7
star
36

opera-xdebug

Opera Xdebug extension
JavaScript
5
star
37

dotfiles

Various configs
Shell
4
star
38

yiifeed-redesign

HTML
4
star
39

samdark.github.io_source

Alexander Makarov English blog
HTML
3
star
40

arguments

Helps deciding A vs B
JavaScript
1
star
41

opencollective-calculator

Various calculations on exported OpenCollective CSV
PHP
1
star
42

phpunit_runInSeparateProcess_bug

PHP
1
star
43

samdark.github.io

HTML
1
star
44

yiipress

Blog / publishing engine powered by Yii3
PHP
1
star
45

plain_to_amnezia

Plain text domains list to AmneziaVPN converter
PHP
1
star