Function: keyfreq-html
keyfreq-html is an interactive and natively compiled function defined
in keyfreq.el.
Signature
(keyfreq-html FILENAME &optional CONFIRM)
Documentation
Save an HTML file as FILENAME with all the statistics of each mode.
Key Bindings
This command is not in any keymaps.
Source Code
;; Defined in /nix/store/vs0cnjcny583s3d1i80ya8g63h6xkwrn-emacs-packages-deps/share/emacs/site-lisp/elpa/keyfreq-20231107.106/keyfreq.el
(defun keyfreq-html (filename &optional confirm)
"Save an HTML file as FILENAME with all the statistics of each mode."
(interactive
(list (if buffer-file-name
(read-file-name "Write HTML file: "
nil nil nil nil)
(read-file-name "Write HTML file: " default-directory
(expand-file-name
(file-name-nondirectory (buffer-name))
default-directory)
nil nil))
(not current-prefix-arg)))
(and confirm
(file-exists-p filename)
(or (y-or-n-p (format "File `%s' exists; overwrite? " filename))
(error "Canceled")))
(let ((table (copy-hash-table keyfreq-table))
(htmltable (lambda (list)
(insert "<table>\n")
(insert "<thead><tr><th>Times</th><th>Percetage</th><th>Command</th></tr></thead>\n")
(insert "<tbody>\n")
(keyfreq-format-list list
(lambda (count perc command)
(insert (format "<tr><td>%d</td><td>%.2f%%</td><td>%s</td></tr>\n" count perc command))))
(insert "</tbody>\n")
(insert "</table>\n"))))
;; Merge with the values in `keyfreq-file'
(keyfreq-table-load table)
(with-temp-file filename
(insert "<html>\n<body>\n")
(insert "<h1>Keyfreq Report</h1>\n")
(insert "<ul>\n")
(insert "<li><a href=\"#all\">All major modes</a></li>\n")
(mapc
(lambda (major-mode-symbol)
(insert (format "<li><a href=\"#%s\">%s</a></li>\n"
(symbol-name major-mode-symbol)
(symbol-name major-mode-symbol))))
(keyfreq-used-major-modes table))
(insert "</ul>\n")
(insert "<h2><a name=\"all\">All major modes</a></h2>\n")
(funcall htmltable (keyfreq-list (keyfreq-groups-major-modes table)))
(mapc
(lambda (major-mode-symbol)
(insert (format "<h2><a name=\"%s\">%s</a></h2>\n"
(symbol-name major-mode-symbol)
(symbol-name major-mode-symbol)))
(funcall htmltable (keyfreq-list (keyfreq-filter-major-mode table major-mode-symbol))))
(keyfreq-used-major-modes table))
(insert "</body>\n</html>\n")
)
))