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

11

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

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

mattl
источник

Ответы:

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
источник
Если вы обнаружите, что занимаетесь редактированием такого рода на регулярной основе, я настоятельно рекомендую пакет с несколькими курсорами. Иногда я удивляюсь, как я обходился без этого.
Ниспио
@ welldan97 Как вы создали этот GIF? Просто любопытно ...
Lunaryorn
@lunaryorn, через LICEcap для OS X. Я слышал, что Quicktime может быть лучше, хотя я еще не пробовал.
welldan97
8

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

shosti
источник
1

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

artagnon
источник
«Вы действительно не должны генерировать HTML, используя текстовые манипуляции» - я могу придумать множество причин, по которым можно это сделать (вы не всегда можете контролировать свой ввод).
Шости
Префикс строки ввода с * означает не слишком много, не так ли?
Артаньон
Я считаю, что экспорт в режиме org отлично подходит для автоматизированного решения, но я не думаю, что отговаривать от базовых манипуляций с текстом для генерации html полезно.
dgtized
Если вы хотите добавить это как ответ (префикс всех строк с '*', активировать org-mode, а затем экспортировать в HTML), то это нормально, но я не думаю, что имеет смысл ругать людей за то, что они хотят "быстро и грязно" Генерация HTML.
Шости
Справедливо; Я перефразировал это.
Артаньон