Emacs: HTML, Lines to Table 🚀
Here's a command that turns lines into HTML table.
For example,
a b c 1 2 3
becomes a HTML table and is rendered in browser like this:
a | b | c |
1 | 2 | 3 |
with CSS code.
Solution
(defun xah-html-lines-to-table () "Transform the current block or selection into a HTML table. For example: a|b|c 1|2|3 becomes <table class=\"nrm\"> <tr><td>a</td><td>b</td><td>c</td></tr> <tr><td>1</td><td>2</td><td>3</td></tr> </table> URL `http://xahlee.info/emacs/emacs/elisp_make-html-table.html' Version: 2019-06-07 2021-12-12 2022-02-11" (interactive) (let* ((xsep (read-string "Table column separation string:" "|" nil "|")) (xbds (xah-get-bounds-of-thing-or-region 'block)) (xp1 (car xbds)) (xp2 (cdr xbds)) (xinput (buffer-substring-no-properties xp1 xp2)) (xlines (split-string xinput "\n" t " +")) (xrows (mapcar (lambda (x) (format "<tr><td>%s</td></tr>" (mapconcat 'identity (split-string x xsep) "</td><td>"))) xlines)) (xresultStr (concat "<table class=\"nrm\">\n" (mapconcat 'identity xrows "\n") "\n</table>"))) (delete-region xp1 xp2) (goto-char xp1) (insert xresultStr)))
requires package Emacs: xah-get-thing.el 📦