php - texto - string strip_tags
Análisis de HTML para solucionar problemas de microtypography y glifo (4)
Como han dicho otros, una solución basada en expresiones regulares podría ser peligrosa / prohibida ...
Pero si tiene un bloqueo en el tipo de contenido en el que desea utilizar esta herramienta (y parece que sí lo hace si el contenido proviene de su CMS), suena como una extensión del programa Perl que Demoroniser puede encargarse de esto para usted: http://www.fourmilab.ch/webtools/demoroniser/
Me interesan los temas de microtypography en la web.
Quiero una herramienta para arreglar:
- Citas
- "(& # 8220;) comillas iniciales (en lugar de")
- ”(& # 8221;) cotización de cierre (en lugar de")
- Apóstrofe
- ''(& # 8217;) apóstrofe (en lugar de'')
- Guiones y guiones
- - (& # 8211; o & ndash;) en el tablero, usado para rangos, por ejemplo, "13-15 de noviembre" (en lugar de -)
- - (& # 8212; o & mdash;) em dash, usado para cambiar de pensamiento, por ejemplo, "Star Wars es, como todos saben, increíble".
- Elipsis
- ... (& # 8230; o & hellip;) puntos suspensivos horizontales, utilizados para indicar una omisión o una pausa (en lugar de ...)
- Y mas / o /
Todas esas correcciones dependen del idioma del contenido. En francés, por ejemplo, debemos agregar un espacio insegable (sin ruptura) antes de cada glifo compuesto ( :
, ;
, …
, ?
, !
, ...), y nuestras citas son "como esta".
Hay muchas restricciones para tal herramienta:
- no debe editar ningún HTML dentro de las etiquetas protegidas (
pre
,code
...) - debe ser rápido (usado en una salida de CMS)
- no debe romper el HTML
- y así.
Ya hay algunas herramientas en el mercado:
- http://michelf.ca/projects/php-smartypants/typographer/
- http://kingdesk.com/projects/php-typography/
- http://code.google.com/p/typogrify/
Todos ellos están más o menos basados en SmartyPants, una publicación de 2005, no están probados ni documentados, analizan el HTML manualmente y no tratan otras reglas que no sean el inglés. Infierno no
Así que mis preguntas son:
- ¿Conoces alguna herramienta decente como esta?
- ¿Cómo puedo hacerlo? Ya tengo un POC con DomCrawler pero no estoy convencido. ¿Cuál es la mejor manera de analizar y editar HTML en PHP?
Edición de julio de 2013 : he desarrollado JoliTypo partir de las pruebas y la experiencia que obtuve con este problema. Ninguna libra existente estaba haciendo lo que quería hacer.
En cuanto a las citas, lea esta etiqueta Q , otras utilizaría la biblioteca bbcode. Como sería muy difícil escribir un algoritmo para distinguir los guiones que necesita. BBcode permite que el editor elija, pero en ese caso, cuando el editor tiene que realizar una acción, puede pensar en proporcionar algún tipo de botón para insertar caracteres especiales. Para las cosas que son fáciles de reconocer, simplemente crea nuevas reglas para BBcode lib y, si tienen que ser locales, crearía diferentes conjuntos de reglas para diferentes idiomas. Obviamente la herencia en OOP sería útil aquí.
Mi amigo algo, Sean, construyó algo que uso para este propósito con bastante frecuencia. Puede ver la demostración aquí: http://files.seancoates.com/lexentity/ bloguó aquí: http://seancoates.com/blogs/lexentity y puede obtener la fuente aquí: https://github.com/scoates/lexentity
Puede que no satisfaga todas sus necesidades lingüísticas, pero es un comienzo con el inglés.