Como converter uma série de linhas em uma lista HTML funcional?

11

No momento, essa é uma tarefa que acho muito mais fácil em algo como o gedit, porque posso substituir "\ n" (quebra de linha) por "</li> \ n <li>" e então tenho uma lista.

Uma das poucas pequenas coisas que eu não consigo no Emacs rapidamente, mas que uso muito.

mattl
fonte

Respostas:

7

A maneira mais direta de fazer isso seria

  • Marque a região das linhas de texto para se tornar uma lista
  • Pressione M-%( query-replace)
  • Tipo C-q C-j RET </li> C-q C-j <li> RET( C-q C-jinsere um caractere de nova linha entre aspas)
  • Pressione !para substituir todas as ocorrências
Maciej Goszczycki
fonte
Eu tive que mudar as tags de abertura e fechamento, mas isso funciona e acho que consigo me lembrar de Cq Cj.
mattl
10

Como alternativa para substituir a consulta, você pode usar vários cursores :

insira a descrição da imagem aqui

Considere também usar algo como isto:

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

fonte

welldan97
fonte
Se você se encontra fazendo esse tipo de edição regularmente, recomendo o pacote de múltiplos cursores. Às vezes me pergunto como me dei bem sem isso.
Nispio
@ welldan97 Como você criou esse GIF? Apenas curioso ...
lunaryorn
@ lunaryorn, via LICEcap para OS X. Ouvi dizer que o Quicktime pode ser melhor, embora ainda não tenha tentado.
precisa saber é o seguinte
8

Você pode usar query-replace-regexp( C-M-%). Substitua ^\(.*\)$por <li>\1</li>.

shosti
fonte
1

Para uma solução completa, converta seu texto em uma lista de modo organizacional e exporte para HTML . Prefixe as linhas com '*', ativo org-modee execute org-html-export-to-html.

artagnon
fonte
"Você realmente não deveria gerar HTML usando manipulações de texto" - posso pensar em várias razões pelas quais alguém pode querer fazer isso (nem sempre é possível controlar sua entrada).
shosti 23/09/14
Prefixar linhas de entrada com um '*' não é pedir demais, é?
Artagnon # 23/14
Acredito que a exportação no modo organizacional é excelente para uma solução automatizada, mas não acho útil desencorajar a manipulação básica de texto para a geração de html.
usar o seguinte comando
Se você quiser adicionar isso como uma resposta (prefixar todas as linhas com '*', ativar org-modee exportar para HTML), tudo bem, mas não acho que faça sentido censurar as pessoas por quererem "ser rápido e sujo" Geração de HTML.
shosti 23/09/14
Justo; Eu o reformulei.
Artagnon # 23/14