Bagaimana cara mengubah serangkaian garis menjadi daftar HTML yang berfungsi?


11

Saat ini, ini adalah tugas yang saya temukan jauh lebih mudah dalam sesuatu seperti gedit, karena saya bisa mengganti "\ n" (line break) dengan "</li> \ n <li>" dan kemudian saya memiliki daftar.

Salah satu dari sedikit hal yang sepertinya tidak bisa saya lakukan dengan cepat di Emacs, tetapi sesuatu yang sering saya gunakan.

Jawaban:


7

Cara paling langsung untuk melakukan ini adalah dengan

  • Tandai wilayah baris teks untuk menjadi daftar
  • Tekan M-%( query-replace)
  • Ketik C-q C-j RET </li> C-q C-j <li> RET( C-q C-jmenyisipkan karakter baris baru yang dikutip)
  • Tekan !untuk mengganti semua kejadian

saya harus mengubah tag pembuka dan penutup, tetapi ini berfungsi, dan saya pikir saya bisa membuat saya ingat Cq Cj.
mattl

10

Atau dengan mengganti permintaan kueri Anda bisa menggunakan multi-kursor :

masukkan deskripsi gambar di sini

Juga pertimbangkan untuk menggunakan sesuatu seperti ini:

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

sumber


Jika Anda menemukan diri Anda melakukan pengeditan semacam ini secara teratur maka saya sangat merekomendasikan paket multi-kursor. Terkadang saya bertanya-tanya bagaimana saya bisa hidup tanpanya.
nispio

@ welldan97 Bagaimana Anda membuat GIF itu? Hanya ingin tahu ...
lunaryorn

@Lunaryorn, melalui LICEcap untuk OS X. Saya pernah mendengar Quicktime bisa lebih baik, meskipun saya belum mencobanya.
welldan97

8

Anda dapat menggunakan query-replace-regexp( C-M-%). Ganti ^\(.*\)$dengan <li>\1</li>.


1

Untuk solusi berfitur lengkap, ubah teks Anda menjadi daftar mode-org dan ekspor ke HTML . Awali baris dengan '*', aktif org-mode, dan jalankan org-html-export-to-html.


"Anda benar-benar tidak boleh membuat HTML menggunakan manipulasi teks" - Saya bisa memikirkan banyak alasan orang mungkin ingin melakukan itu (Anda tidak selalu dapat mengontrol input Anda).
shosti

Memulai awal jalur input dengan tanda '*' tidak terlalu banyak, bukan?
artagnon

Saya percaya ekspor mode-org sangat bagus untuk solusi otomatis, tetapi saya tidak berpikir untuk mencegah manipulasi teks dasar untuk pembuatan html sangat membantu.
dgtized

Jika Anda ingin menambahkan itu sebagai jawaban (awali semua baris dengan '*', aktifkan org-mode, lalu ekspor ke HTML) maka itu tidak masalah, tapi saya rasa tidak masuk akal untuk memarahi orang-orang karena ingin "cepat-dan-kotor" Generasi HTML.
shosti

Cukup adil; Saya telah menulis ulang.
artagnon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.