typography – ¿Cómo puedo usar comillas curvas en texto automáticamente, pero comillas rectas en etiquetas HTML?

Pregunta:

Tengo un proyecto, Tufte CSS, que escribo a mano en HTML. Quiero usar comillas tipográficas (también conocidas como citas elegantes o comillas curvas) en el texto de ese documento, pero comillas tontas (también conocidas como comillas rectas) en las etiquetas HTML de ese documento.

¿Cómo logro esto? Actualmente utilizo el modo web y typopunct.el , pero este último inserta automáticamente comillas tipográficas en todas partes, incluso alrededor de los atributos HTML, lo que hace que no funcione.

Respuesta:

Resulta que este es un problema resuelto. Typopunct ya puede usar comillas curvas en texto y comillas rectas dentro de etiquetas para una variedad de modos. Sucede que edito HTML en un modo que typopunct no cubre de inmediato, pero eso no es un problema. Ver typopunct-mode.el :

(defcustom typopunct-mode-exeptions-alist
  '((sgml-mode . typopunct-point-in-xml-tag-p)
    (nxml-mode . typopunct-point-in-xml-tag-p)
    (html-mode . typopunct-point-in-xml-tag-p))
  "Alist for mode specific expections.

This alist specifies major mode specific expectional cases when the
function `typopunct-insert-quotation-mark' should *not* insert
typographical quotation marks.

Each element is a pair of a major mode (a symbol) and a predicate
function that should return non nil, when
`typopunct-insert-quotation-mark' should insert an ASCII `\"'."
  :group 'typopunct
  :type '(alist :key-type symbol :value-type function))

¡Estupendo! Typopunct ya tiene una función para verificar si está dentro de una etiqueta de corchete angular estilo XML y está configurado para no insertar comillas tipográficas si ese es el caso en ciertos modos.

En lugar del modo html, uso el modo web. Entonces, agregué lo siguiente a mi init.el:

(add-to-list 'typopunct-mode-exeptions-alist 
             '(web-mode . typopunct-point-in-xml-tag-p))

… y todo está bien en el mundo. Recuerden, niños: es simplemente elisp, y la mayoría de las veces el problema que tienen es un problema que otra persona ha tenido antes.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım