Come convertire una serie di linee in un elenco HTML funzionante?


11

In questo momento, questo è un compito che trovo molto più facile in qualcosa come gedit, perché posso semplicemente sostituire "\ n" (l'interruzione di riga) con "</li> \ n <li>" e quindi ho un elenco.

Una delle poche piccole cose che non riesco a trovare rapidamente in Emacs, ma qualcosa che uso molto.

Risposte:


7

Il modo più diretto per farlo sarebbe

  • Contrassegna la regione delle righe di testo per diventare un elenco
  • Premere M-%( query-replace)
  • Tipo C-q C-j RET </li> C-q C-j <li> RET( C-q C-jinserisce un carattere di nuova riga tra virgolette)
  • Premere !per sostituire tutte le occorrenze

ho dovuto cambiare i tag di apertura e chiusura, ma questo funziona e penso di potermi ricordare Cq Cj.
— mattl,

10

In alternativa alla query di sostituzione puoi andare con più cursori :

inserisci qui la descrizione dell'immagine

Considera anche di usare qualcosa del genere:

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

fonte


Se ti ritrovi a fare questo tipo di modifica su base regolare, ti consiglio vivamente il pacchetto a cursori multipli. A volte mi chiedo come sia mai andata d'accordo senza di essa.
— nispio,

@ welldan97 Come hai creato quella GIF? Solo curioso ...
— lunaryorn,

@lunaryorn, tramite LICEcap per OS X. Ho sentito che Quicktime può essere migliore, anche se non ci ho ancora provato.
— welldan97,

8

Puoi usare query-replace-regexp( C-M-%). Sostituisci ^\(.*\)$con <li>\1</li>.


1

Per una soluzione completa, converti il ​​tuo testo in un elenco in modalità organizzazione ed esporta in HTML . Prefisso linee con '*', attivo org-modeed esegui org-html-export-to-html.


"Non dovresti davvero generare HTML usando manipolazioni di testo" - Posso pensare a molte ragioni per cui potresti voler farlo (non puoi sempre controllare i tuoi input).
— shosti,

Il prefisso delle righe di input con un '*' non richiede troppo, vero?
— artagnon,

Credo che l'esportazione in modalità org sia eccellente per una soluzione automatizzata, ma non credo che scoraggiare la manipolazione di base del testo per la generazione di html sia utile.
— dgtized

Se vuoi aggiungerlo come risposta (prefiggi tutte le righe con '*', attiva org-mode, quindi esporta in HTML), allora va bene, ma non penso che abbia senso sgridare le persone che vogliono "sporcizia" Generazione HTML.
— shosti,

Giusto; L'ho riformulato.
— artagnon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.