{"id":21810689,"url":"https://github.com/samdark/typograph","last_synced_at":"2025-04-13T22:11:45.392Z","repository":{"id":142584236,"uuid":"2336856","full_name":"samdark/Typograph","owner":"samdark","description":"Класс для автоматического применения правил русской типографики для веб","archived":false,"fork":false,"pushed_at":"2014-02-08T22:10:15.000Z","size":260,"stargazers_count":99,"open_issues_count":4,"forks_count":13,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-27T12:38:27.177Z","etag":null,"topics":["russian-specific","typographer","typography"],"latest_commit_sha":null,"homepage":"http://rmcreative.ru/blog/post/tipograf","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samdark.png","metadata":{"files":{"readme":"readme.md","changelog":"history.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-09-06T19:42:39.000Z","updated_at":"2024-03-27T16:17:28.000Z","dependencies_parsed_at":"2023-05-04T10:00:58.461Z","dependency_job_id":null,"html_url":"https://github.com/samdark/Typograph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdark%2FTypograph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdark%2FTypograph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdark%2FTypograph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdark%2FTypograph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samdark","download_url":"https://codeload.github.com/samdark/Typograph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248788915,"owners_count":21161727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["russian-specific","typographer","typography"],"created_at":"2024-11-27T13:37:12.616Z","updated_at":"2025-04-13T22:11:45.362Z","avatar_url":"https://github.com/samdark.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Типограф (PHP5)\n===============\n\n- Страничка: http://rmcreative.ru/blog/post/tipograf\n- Онлайн-версия: http://rmcreative.ru/typograph/\n\nАвторы:\n\n- [Максим Оранский](http://smee-again.livejournal.com/), первоначальный код, тестирование, правила.\n- [Александр Макаров](http://rmcreative.ru), код, тестирование, правила, плагины для Smarty, дальнейшая поддержка.\n \nПри создании типографа помимо личного опыта использовались:\n\n- http://philigon.ru/\n- http://artlebedev.ru/kovodstvo/\n- http://pvt.livejournal.com/\n \nСпасибо:\n\n- [-=Ustas=-](http://vingrad.ru/@-=Ustas=-/)\n- [faZeful](http://fazeful.ru/)\n- [Naruvi (Begemot)](http://priop.ru/)\n- grasshopper\n- eagle\n- SHAman\n- Eagle\n- grasshopper\n- Max\n- Reki\n- Zav\n- sadhaka\n- Алексей Волкогон\n\n… и всем, кто пользуется типографом и сообщает об ошибках.\n\nОтдельное спасибо Max-у за плагин к Wordpress.\n\n\n\nНа данный момент типограф умеет:\n--------------------------------\n\n- Обрабатывать тексты в различных кодировках(требуется iconv).\n- Заменять кавычки на ёлочки.\n- Склеивать двойные кавычки.\n- Заменять знак дефиса или два знака дефиса подряд — на знак длинного тире.\n- Заменять знак дефиса, ограниченный с обоих сторон цифрами — на знак короткого тире.\n- Заменять множество пробелов или табуляций на один пробел.\n- Заменять х в выражениях вроде 10x10 на знак умножения.\n- Исправлять неправильную расстановку запятых.\n- Разносить неправильно расставленные кавычки.\n- Вставлять неразрывный пробел после инициалов, сцеплять инициалы.\n- Делать неразрывными названия организаций и аббревиатуры форм собственности.\n- Делать неразрывными имя собственное и относящееся к нему сокращение.\n- Не разделять 2007 г., ставить пробел, если его нет.\n- Сцеплять скобки со словами.\n- Заменять 1/2 1/4 3/4 на спецсимволы.\n- Следить за тем, чтобы предлоги и союзы не находились в конце строки.\n- Следить за тем, чтобы частицы бы, ли, же и т.д. не отрывались от предшествующего слова.\n- Форматировать русские денежные суммы, расставляя пробелы в нужных местах.\n- Заменять от 3-х до 5-и точек подряд на троеточие.\n- Притягивать к слову запятые, отделять пробелом от последующего слова.\n- Притягивать к слову восклицательный знак.\n- Делать замену для +-.\n- Обрабатывать вложенные кавычки.\n- Притягивание чисел к знаку умножения.\n- Запятые до «а» и «но».\n- Притягивание «;» к предшествующему слову.\n- Убирает лишние знаки: «??» в «?», «!!!!» в «!!!».\n- Правильные апострофы в «LO'Лайт».\n- Прямая речь.\n- Неразрывные IP-адреса.\n\nИспользование класса\n--------------------\n\nПростой пример:\n\n~~~\nrequire_once('Typographus.php');\n$typo = new Typographus();\n$text = $typo-\u003eprocess($text);\n~~~\n\nДля обработки текста в кодировке, отличной от `WINDOWS-1251`, укажите кодировку в\nконструкторе(требуется iconv):\n\n~~~\n$typo = new Typographus('UTF-8');\n~~~\n\nЕсли возникнет необходимость не обрабатывать текст внутри какого-либо блока —\nдобавьте его при помощи метода `addSafeBlock()`:\n\n~~~\n$typo-\u003eaddSafeBlock('\u003cclear\u003e', '\u003c/clear\u003e');\n~~~\n\nДля задания полностью своего набора безопасных блоков можно сначала очистить набор блоков:\n\n~~~\n$typo-\u003eremoveAllSafeBlocks(); \n~~~\n\nЕсли вам понадобится изменить символы замены, воспользуйтесь методом setSym():\n\n~~~\n$typo-\u003esetSym('nbsp', '\u0026nbsp;');\n~~~\n\nЕсли хотите, чтобы все буквы ё менялись автоматом на е:\n\n~~~\n$typo-\u003esetOpt(Typographus::CONVERT_E, true);\n~~~\n\nЕсли хотите, чтобы спец-знаки были выведены как HTML-сущности:\n\n~~~\n$typo-\u003esetOpt(Typographus::HTML_ENTITIES, true);\n~~~\n\nИспользование типографа в Smarty\n--------------------------------\n\nВместе с классом типографа в архиве вы можете найти плагины для Smarty.\nСкопируйте их в вашу папку `plugins`.\n\nЕсли вы хотите подключить постфильтр Smarty (т.е. обработать всю страницу уже\nпосле её формирования) — пишем при инициализации Smarty:\n\n~~~\n$smarty-\u003eload_filter('output', 'typograph');\n~~~\n\nДанный подход не рекомендуется использовать т.к. использование может сказаться на производительности.\n\n\nЕсли вам необходимо обработать конкретную переменную - применеям модификатор в\nшаблоне:\n\n~~~\n{$text|typograph}\n~~~\n\nИспользование типографа в WordPress, Drupal, CakePHP, Invision Power Board\n--------------------------------------------------------------------------\n\nВ архиве прилагаются инструкции и необходимые файлы.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdark%2Ftypograph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamdark%2Ftypograph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdark%2Ftypograph/lists"}