Как преобразовать серию строк в рабочий список HTML?


11

Прямо сейчас это задача, которую я нахожу намного проще в чем-то вроде gedit, потому что я могу просто заменить "\ n" (разрыв строки) на "</ li> \ n <li>", и тогда у меня есть список.

Одна из немногих мелочей, которую мне не удается быстро реализовать в Emacs, но я часто пользуюсь ею.

Ответы:


7

Самый прямой способ сделать это было бы

  • Отметьте область текстовых строк, чтобы стать списком
  • Нажмите M-%( query-replace)
  • Тип C-q C-j RET </li> C-q C-j <li> RET( C-q C-jвставляет символ новой строки в кавычках)
  • Нажмите, !чтобы заменить все вхождения

Мне пришлось изменить теги открытия и закрытия, но это работает, и я думаю, что могу вспомнить Cq Cj.
Маттл

10

В качестве альтернативы для запроса замены вы можете использовать несколько курсоров :

введите описание изображения здесь

Также подумайте об использовании чего-то вроде этого:

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

источник


Если вы обнаружите, что занимаетесь редактированием такого рода на регулярной основе, я настоятельно рекомендую пакет с несколькими курсорами. Иногда я удивляюсь, как я обходился без этого.
Ниспио

@ welldan97 Как вы создали этот GIF? Просто любопытно ...
Lunaryorn

@lunaryorn, через LICEcap для OS X. Я слышал, что Quicktime может быть лучше, хотя я еще не пробовал.
welldan97

8

Вы можете использовать query-replace-regexp( C-M-%). Заменить ^\(.*\)$на <li>\1</li>.


1

Для полнофункционального решения преобразуйте текст в список в режиме org и экспортируйте в HTML . Строки префикса с «*», активным org-modeи запустить org-html-export-to-html.


«Вы действительно не должны генерировать HTML, используя текстовые манипуляции» - я могу придумать множество причин, по которым можно это сделать (вы не всегда можете контролировать свой ввод).
Шости

Префикс строки ввода с * означает не слишком много, не так ли?
Артаньон

Я считаю, что экспорт в режиме org отлично подходит для автоматизированного решения, но я не думаю, что отговаривать от базовых манипуляций с текстом для генерации html полезно.
dgtized

Если вы хотите добавить это как ответ (префикс всех строк с '*', активировать org-mode, а затем экспортировать в HTML), то это нормально, но я не думаю, что имеет смысл ругать людей за то, что они хотят "быстро и грязно" Генерация HTML.
Шости

Справедливо; Я перефразировал это.
Артаньон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.