Wie konvertiere ich eine Reihe von Zeilen in eine funktionierende HTML-Liste?

11

Im Moment ist dies eine Aufgabe, die ich in so etwas wie gedit viel einfacher finde, weil ich einfach "\ n" (den Zeilenumbruch) durch "</ li> \ n <li>" ersetzen kann und dann eine Liste habe.

Eines der wenigen kleinen Dinge, die ich in Emacs nicht schnell zu können scheine, aber etwas, das ich oft benutze.

mattl
quelle

Antworten:

7

Der direkteste Weg, dies zu tun, wäre zu

  • Markieren Sie den Bereich der Textzeilen, um eine Liste zu erhalten
  • Drücken Sie M-%( query-replace)
  • Typ C-q C-j RET </li> C-q C-j <li> RET( C-q C-jfügt ein in Anführungszeichen gesetztes Zeilenumbruchzeichen ein)
  • Drücken Sie !, um alle Vorkommen zu ersetzen
Maciej Goszczycki
quelle
Ich musste die öffnenden und schließenden Tags ändern, aber das funktioniert, und ich denke, ich kann mich an Cq Cj erinnern.
Mattl
10

Alternativ zum Abfragen von Ersetzen können Sie mehrere Cursor verwenden :

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie auch Folgendes:

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

Quelle

welldan97
quelle
Wenn Sie diese Art der Bearbeitung regelmäßig durchführen, empfehle ich das Paket mit mehreren Cursorn. Manchmal frage ich mich, wie ich jemals ohne ausgekommen bin.
Nispio
@ welldan97 Wie hast du das GIF erstellt? Nur neugierig ...
Mondhorn
@lunaryorn, über LICEcap für OS X. Ich habe gehört, dass Quicktime besser sein kann, obwohl ich es noch nicht versucht habe.
Welldan97
8

Sie können query-replace-regexp( C-M-%) verwenden. Ersetzen ^\(.*\)$durch <li>\1</li>.

shosti
quelle
1

Konvertieren Sie Ihren Text für eine Lösung mit vollem Funktionsumfang in eine Liste im Organisationsmodus und exportieren Sie ihn in HTML . Stellen Sie den Zeilen '*' voran, aktiv org-modeund ausführen org-html-export-to-html.

Artagnon
quelle
"Sie sollten HTML wirklich nicht mithilfe von Textmanipulationen generieren" - ich kann mir viele Gründe vorstellen, warum man das tun möchte (Sie können Ihre Eingabe nicht immer steuern).
Shosti
Das Präfixieren von Eingabezeilen mit einem '*' verlangt nicht zu viel, oder?
Artagnon
Ich glaube, dass der Export im Organisationsmodus hervorragend für eine automatisierte Lösung geeignet ist, aber ich denke nicht, dass es hilfreich ist, die grundlegende Textmanipulation für die HTML-Generierung zu unterbinden.
Dgtized
Wenn Sie dies als Antwort hinzufügen möchten (alle Zeilen mit '*' voranstellen, aktivieren org-modeund dann in HTML exportieren), ist das in Ordnung, aber ich denke nicht, dass es sinnvoll ist, Leute dafür zu schelten, dass sie "schnell und schmutzig" wollen. HTML-Generierung.
Shosti
Meinetwegen; Ich habe es umformuliert.
Artagnon