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.

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

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


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>.


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.


"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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.