Jak przekonwertować serię wierszy na działającą listę HTML?

11

W tej chwili jest to zadanie, które jest o wiele łatwiejsze w czymś takim jak gedit, ponieważ mogę po prostu zastąpić „\ n” (podział wiersza) „</li> \ n <li>”, a następnie mam listę.

Jedną z niewielu rzeczy, które nie wydają się być w stanie szybko zrobić w Emacsie, ale coś, z czego często korzystam.

matowy
źródło

Odpowiedzi:

7

Najbardziej bezpośredni sposób to zrobić

  • Zaznacz region linii tekstu, aby stał się listą
  • Naciśnij M-%( query-replace)
  • Wpisz C-q C-j RET </li> C-q C-j <li> RET( C-q C-jwstawia cytowany znak nowej linii)
  • Naciśnij, !aby zastąpić wszystkie wystąpienia
Maciej Goszczycki
źródło
musiałem się zmieniać wokół tagów otwierających i zamykających, ale to działa i myślę, że mogę sobie przypomnieć Cq Cj.
mattl
10

Alternatywnie do zapytania zamień możesz przejść z wieloma kursorami :

wprowadź opis zdjęcia tutaj

Rozważ również użycie czegoś takiego:

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

źródło

welldan97
źródło
Jeśli zauważysz, że regularnie edytujesz ten typ, zdecydowanie polecam pakiet wielu kursorów. Czasami zastanawiam się, jak sobie z tym radziłem.
nispio
@ welldan97 Jak stworzyłeś ten GIF? Po prostu ciekawy…
lunaryorn
@lunaryorn, przez LICEcap dla OS X. Słyszałem, że Quicktime może być lepszy, chociaż jeszcze nie próbowałem.
welldan97
8

Możesz użyć query-replace-regexp( C-M-%). Wymień ^\(.*\)$się <li>\1</li>.

shosti
źródło
1

Aby uzyskać w pełni funkcjonalne rozwiązanie, przekonwertuj tekst na listę w trybie organizacji i wyeksportuj do HTML . Przedrostek wierszy znakiem „*”, aktywny org-modei uruchamiany org-html-export-to-html.

artagnon
źródło
„Naprawdę nie powinieneś generować HTML za pomocą manipulacji tekstem” - mogę wymyślić wiele powodów, dla których warto to zrobić (nie zawsze możesz kontrolować swoje dane wejściowe).
shosti
Prefiksowanie linii wejściowych znakiem „*” nie wymaga zbyt wiele, prawda?
artagnon
Wierzę, że eksport w trybie org jest doskonały do ​​automatycznego rozwiązania, ale nie sądzę, aby zniechęcanie do podstawowej manipulacji tekstem podczas generowania HTML było pomocne.
dgtized
Jeśli chcesz dodać to jako odpowiedź (przedrostek wszystkich wierszy znakiem „*”, aktywuj org-mode, a następnie wyeksportuj do HTML), to jest w porządku, ale nie sądzę, aby to było zbesztanie ludzi za chęć „szybkiego i brudnego” Generowanie HTML.
shosti
Słusznie; Przeredagowałem to.
artagnon