Comment convertir une série de lignes en une liste HTML fonctionnelle?


11

En ce moment, c'est une tâche que je trouve beaucoup plus facile dans quelque chose comme gedit, car je peux simplement remplacer "\ n" (le saut de ligne) par "</li> \ n <li>" et puis j'ai une liste.

L'une des rares petites choses que je ne semble pas pouvoir utiliser rapidement dans Emacs, mais quelque chose que j'utilise beaucoup.

Réponses:


7

La façon la plus directe de procéder serait de

  • Marquez la région des lignes de texte pour devenir une liste
  • Appuyez sur M-%( query-replace)
  • Type C-q C-j RET </li> C-q C-j <li> RET( C-q C-jinsère un caractère de nouvelle ligne entre guillemets)
  • Appuyez !pour remplacer toutes les occurrences

j'ai dû changer autour des balises d'ouverture et de fermeture, mais cela fonctionne, et je pense que je peux me rappeler Cq Cj.
mattl

10

Alternativement, pour remplacer la requête, vous pouvez utiliser plusieurs curseurs :

entrez la description de l'image ici

Pensez également à utiliser quelque chose comme ceci:

(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 ">")
    ))

la source


Si vous vous trouvez en train de faire ce type d'édition régulièrement, je recommande fortement le package à curseurs multiples. Parfois, je me demande comment je me suis débrouillé sans ça.
nispio

@ welldan97 Comment avez-vous créé ce GIF? Juste curieux…
lunaryorn

@lunaryorn, via LICEcap pour OS X. J'ai entendu dire que Quicktime pouvait être meilleur, mais je n'ai pas encore essayé.
welldan97

8

Vous pouvez utiliser query-replace-regexp( C-M-%). Remplacez ^\(.*\)$par <li>\1</li>.


1

Pour une solution complète, convertissez votre texte en liste en mode organisation et exportez-le en HTML . Préfixez les lignes avec '*', actives org-modeet exécutées org-html-export-to-html.


"Vous ne devriez vraiment pas générer de HTML en utilisant des manipulations de texte" - je peux penser à de nombreuses raisons pour lesquelles on pourrait vouloir faire ça (vous ne pouvez pas toujours contrôler votre entrée).
shosti

Préfixer les lignes d'entrée avec un «*» ne demande pas trop, n'est-ce pas?
artagnon

Je pense que l'exportation en mode org est excellente pour une solution automatisée, mais je ne pense pas que décourager la manipulation de texte de base pour la génération html soit utile.
dgtized

Si vous voulez ajouter cela comme réponse (préfixez toutes les lignes avec '*', activez org-mode, puis exportez au format HTML) alors ça va, mais je ne pense pas qu'il soit logique de gronder les gens pour vouloir "rapide et sale" Génération HTML.
shosti

C'est suffisant; Je l'ai reformulé.
artagnon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.