Меня интересует microtypography проблемы в Интернете.
Мне нужен инструмент для исправления:
- Котировки
- "(& # 8220;) вводная цитата (вместо" )
- "(& # 8221;) закрывающая цитата (вместо" )
- Apostrophe
- (& # 8217;) апостроф (вместо ')
- Дефисы и дефисы
- - (& # 8211; or & ndash;) en dash, используемый для диапазонов, например. "13-15 ноября" (вместо -)
- - (& # 8212; или &—) em dash, используемый для изменения мысли, например. "Звездные войны - как все знают - удивительные". (вместо -, или -)
- Многоточие
- ... (& # 8230; или & hellip;) горизонтальный эллипс, используемый для указания упущения или паузы (вместо...).
- И еще \o/
Все эти исправления зависят от языка контента. На французском языке, например, мы должны добавить незашифрованное (неразрывное) пространство перед каждым составленным глифом (:
, ;
, …
, ?
, !
,...) и нашими кавычками "вот так".
Для такого инструмента существует множество ограничений:
- он не должен редактировать HTML внутри защищенных тегов (
pre
,code
...) - он должен быть быстрым (используется на выходе CMS)
- он не должен нарушать HTML
- и т.д.
На рынке уже есть некоторые инструменты:
- http://michelf.ca/projects/php-smartypants/typographer/
- http://kingdesk.com/projects/php-typography/
- http://code.google.com/p/typogrify/
Все они более или менее основаны на SmartyPants, 2005 lib, не протестированы, не документированы, разбор HTML-кода вручную и не имеют отношения к другим правилам, чем английский. Ад нет.
Итак, мои вопросы:
- Знаете ли вы о каком-нибудь достойном инструменте?
- Как я могу это сделать? У меня уже есть POC, используя DomCrawler, но я не уверен. Какой лучший способ проанализировать и отредактировать HTML на PHP?
Изменить июль 2013 г.. Я разработал JoliTypo из тестов и опыта, которые я получил с этой проблемой, Никакая существующая lib не делала то, что я хотел сделать.