如何将一系列行转换为有效的HTML列表?


11

现在,在gedit之类的程序中,我发现这很容易,因为我可以将“ \ n”(换行符)替换为“ </ li> \ n <li>”,然后得到一个列表。

在Emacs中我似乎无法快速完成的几件小事情之一,但是我却经常使用。

Answers:


7

最直接的方法是

  • 标记文本行的区域以成为列表
  • M-%query-replace
  • 类型C-q C-j RET </li> C-q C-j <li> RETC-q C-j插入带引号的换行符)
  • 按下!以替换所有情况

我必须在开始和结束标签之间进行更改,但这是可行的,而且我认为我可以使自己记住Cq Cj。
mattl 2014年

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

资源


如果您发现自己定期进行这种编辑,那么我强烈建议您使用多光标程序包。有时我想知道如果没有它我该如何相处。
nispio 2014年

@ welldan97您是如何创建该GIF的?只是好奇…
lunaryorn 2014年

@lunaryorn,通过LICEcap for OSX。我听说Quicktime可以做得更好,尽管我还没有尝试过。
welldan97 2014年

8

您可以使用query-replace-regexpC-M-%)。替换^\(.*\)$<li>\1</li>


1

要获得功能全面的解决方案,请将您的文本转换为组织模式列表,然后导出为HTML。给行加上'*',active org-mode和run 前缀org-html-export-to-html


“您真的不应该使用文本操作来生成HTML”-我可以想到许多可能要这样做的原因(您不能总是控制输入)。
shosti

在输入行之前加'*'并不是要求太多,不是吗?
artagnon 2014年

我认为组织模式导出非常适合自动化解决方案,但我认为不鼓励基本的文本操作对html生成没有帮助。
dgtized 2014年

如果您想将其添加为答案(在所有行的前面加上“ *”,org-mode然后激活,然后导出为HTML),那很好,但是我认为责怪人们要“快而脏”是没有道理的HTML生成。
shosti 2014年

很公平; 我已经改写了。
artagnon 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.