Saturday, February 03, 2007

Emacs sending to blogger, made easy

(defvar blogspot-post-username "yourname"
"The first part of the email address: `blogspot-post-username'.`blogspot-post-blog'@blogger.com")


(defvar blogspot-post-blog-list '("blog1" "blog2")
"List with second parts of the email address: `blogspot-post-username'.`blogspot-post-blog'@blogger.com")

(require 'cl)
(defun blogspot (title url &optional text)
"Opens a gnus msg buffer with the active region or the parameters passed in the body.
Configure `blogspot-post-username' and `blogspot-post-blog-list' to set it up."
(interactive "sPost title:
sPost link (tip - an empty string won't create the link): ")
(let* ((blogspot-post-blog (completing-read "Where to? " blogspot-post-blog-list nil nil (car blogspot-post-blog-list)))
(to (concat blogspot-post-username "." blogspot-post-blog "@blogger.com"))
(subject (cond ((and title url (not (string= url "")))
(concat "<a href= \""
url
"\">"
title
"</a>"))
(title title)
(t "")))
(body (or text "")))
(let ((gnus-posting-styles
(mapcan (lambda (x)
(list (remove-if (lambda (y) (and (listp y)
(string= (car y) "Face")))
x)))
gnus-posting-styles)))
(gnus-msg-mail to subject))
(save-excursion
(when body
(raise-frame)
(insert body)))
(message "Edit the buffer and press \\C-c \\C-c to post it to %s." blogspot-post-blog)))

(defun blogspot-region (beg end title url)
"Call `blogspot-text' and inserts the active region as the post's body."
(interactive "r
sPost title:
sPost link: ")
(blogspot title url (buffer-substring-no-properties beg end)))

--
Edgar Gonçalves - http://www.esw.inesc-id.pt/~eemg

Software Engineering Group @ INESC-ID
IST/Technical University of Lisbon

0 comments: