Retourner aux forums || Retourner au forum Astuces.divers
Astuces.divers : [Éditeur/Emacs] Transformer un buffer avec coloration syntaxique en buffer HTML
Posté par Georges () le 10 novembre 2007
Pour ceux qui vivent dans Emacs, voilà quelques lignes de code qui m'ont été bien utiles: transformer un buffer avec coloration syntaxique en un buffer HTML pour sauvegarde...
(defun replace-string* (from to)
(while (search-forward from (point-max) t)
(backward-char 1)
(let ((props (text-properties-at (point))))
(delete-char (length from))
(let ((string (format "%s" to)))
(set-text-properties 0 (length string) props string)
(insert string)))))
(defun faces:save-as-html ()
(interactive)
(let* ((buffer-name (format "*HTML:%s*" (buffer-name)))
(buffer (get-buffer (buffer-name)))
(buffer-html (or (get-buffer buffer-name)
(generate-new-buffer buffer-name))))
(save-excursion
(set-buffer buffer-html)
(insert-buffer buffer)
(save-excursion
(goto-char (point-min))
(replace-string* "&" "&"))
(save-excursion
(goto-char (point-min))
(replace-string* "<" "<"))
(save-excursion
(goto-char (point-min))
(replace-string* ">" ">"))
(let ((current-color nil))
(insert "<body text=\"white\" bgcolor=\"black\">\n")
(while (not (eobp))
(let ((color (let ((face (get-text-property (point) 'face)))
(if face
(face-foreground (if (consp face)
(first face)
face))
nil))))
(if (not (eq color current-color))
(progn
(when current-color
(insert ""))
(when color
(insert (format "<font color=\"%s\">" color)))
(setq current-color color)))
(forward-char 1)))
(when current-color
(insert "")))
(insert "\n"))
(display-buffer buffer-html)))
> Lire le message (0 commentaire).
Revenir en haut de page || Retourner aux forums || Retourner au forum Astuces.divers



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.