¿Cómo convertir una serie de líneas en una lista HTML funcional?

11

En este momento, esta es una tarea que encuentro mucho más fácil en algo como gedit, porque puedo reemplazar "\ n" (el salto de línea) con "</li> \ n <li>" y luego tengo una lista.

Una de las pocas pequeñas cosas que parece que no puedo hacer en Emacs rápidamente, pero algo que uso mucho.

mattl
fuente

Respuestas:

7

La forma más directa de hacer esto sería

  • Marque la región de las líneas de texto para convertirse en una lista.
  • Presione M-%( query-replace)
  • Tipo C-q C-j RET </li> C-q C-j <li> RET( C-q C-jinserta un carácter de nueva línea entre comillas)
  • Presione !para reemplazar todas las ocurrencias
Maciej Goszczycki
fuente
Tuve que cambiar las etiquetas de apertura y cierre, pero esto funciona, y creo que puedo recordar Cq Cj.
mattl
10

Alternativamente para consultar el reemplazo, puede ir con múltiples cursores :

ingrese la descripción de la imagen aquí

También considere usar algo como esto:

(defun wrap-html-tag (tagName)
  "Add a tag to beginning and ending of current word or text selection."
  (interactive "sEnter tag name: ")
  (let (p1 p2 inputText)
    (if (use-region-p)
        (progn
          (setq p1 (region-beginning) )
          (setq p2 (region-end) )
          )
      (let ((bds (bounds-of-thing-at-point 'symbol)))
        (setq p1 (car bds) )
        (setq p2 (cdr bds) ) ) )

    (goto-char p2)
    (insert "</" tagName ">")
    (goto-char p1)
    (insert "<" tagName ">")
    ))

fuente

welldan97
fuente
Si te encuentras haciendo este tipo de edición de forma regular, te recomiendo el paquete de cursores múltiples. A veces me pregunto cómo me llevé sin él.
nispio
@ welldan97 ¿Cómo creaste ese GIF? Simplemente curioso ...
lunaryorn
@lunaryorn, a través de LICEcap para OS X. Escuché que Quicktime puede ser mejor, aunque aún no lo intenté.
welldan97
8

Puedes usar query-replace-regexp( C-M-%). Reemplazar ^\(.*\)$con <li>\1</li>.

shosti
fuente
1

Para una solución con todas las funciones, convierta su texto en una lista de modo de organización y exporte a HTML . Prefijar líneas con '*', activo org-modey ejecutar org-html-export-to-html.

artagnon
fuente
"Realmente no deberías generar HTML usando manipulaciones de texto". Puedo pensar en muchas razones por las que uno podría querer hacer eso (no siempre puedes controlar tu entrada).
shosti
Prefijar líneas de entrada con un '*' no es pedir demasiado, ¿verdad?
artagnon
Creo que la exportación en modo org es excelente para una solución automatizada, pero no creo que sea útil desalentar la manipulación básica de texto para la generación de HTML.
Fue publicado el
Si desea agregar eso como respuesta (prefije todas las líneas con '*', active org-mode, luego exporte a HTML) entonces está bien, pero no creo que tenga sentido regañar a las personas por querer "rápido y sucio" Generación de HTML.
shosti
Lo suficientemente justo; Lo he redactado nuevamente.
artagnon