(require 'htmlize)
(defvar webpublish-folder "/home/arne/web/arnested/filer/")
(defvar webpublish-header "<?php
if (isset($_GET{\"download\"}))
{
header(\"Content-Type: text/plain\");
readfile( $_SERVER{\"DOCUMENT_ROOT\"} . ereg_replace(\".php\", \".code\", $_SERVER{\"PHP_SELF\"}));
exit;
};
$stylesheet = \"/site/htmlize.css\";
include \"/home/arne/web/arnested/site/header.php\";
print '<a href=\"?download\"><img src=\"gnome-dev-floppy.png\" title=\"Download ' . ereg_replace(\"/filer/\", \"\", $_SERVER{\"REQUEST_URI\"}) . '\" alt=\"[Download]\" id=\"download\" /></a>';
?>
")
(defvar webpublish-footer "<?php
include \"/home/arne/web/arnested/site/footer.php\";
?>")
(defun webpublish-region (begin end &optional ask)
"Publish region on web."
(interactive "r\nP")
(save-excursion
(save-window-excursion
(let ((name (buffer-file-name)))
(if (or ask
(null buffer-file-name))
(setq name (read-from-minibuffer "Publish under file name: "))
(setq name (file-name-nondirectory name)))
(write-region (point-min) (point-max) (concat webpublish-folder name ".code"))
(set-buffer (htmlize-region begin end))
(search-forward " <pre>")
(delete-region (point-min) (match-beginning 0))
(goto-char (point-min))
(insert webpublish-header)
(goto-char (point-max))
(search-backward "</pre>")
(delete-region (match-end 0) (point-max))
(goto-char (point-max))
(insert webpublish-footer)
(write-region (point-min) (point-max) (concat webpublish-folder name ".php"))
(kill-this-buffer)))))
(defun webpublish-buffer (&optional ask)
"Publish buffer on web."
(interactive "P")
(webpublish-region (point-min) (point-max) ask))
(provide 'webpublish)