(defun szotar-span-accent (word) "Replaces every occurence of .\" with an accent span." (let ((match (string-match ".\"" word))) (if match (concat (substring word 0 match) "" (substring word match (1+ match)) "" (szotar-span-accent (substring word (+ match 2)))) word))) (defun szotar-next-line () "Takes the next line and prints its HTML representation." (if (re-search-forward "^\\(.*\\) = \\(.*\\)$" (point-max) t) (let* ((definition (match-string 2)) (russian (szotar-span-accent (match-string 1)))) (princ (concat "

\n" "" russian "\n" "" definition "\n" "

\n")) t) nil)) (defun szotar-htmlize () "Generates a CSS-driven HTML file from the current buffer. The buffer is assumed to be in UTF-8 encoding." (interactive) (with-output-to-temp-buffer (concat (buffer-name (current-buffer)) ".html") (princ (concat "\n" "\n" "" (buffer-name (current-buffer)) "\n" "\n" "\n" "\n" "\n")) (save-excursion (goto-char (point-min)) (while (szotar-next-line))) (princ "\n")))