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.