org2blog is now released as alpha quality software
It is released as a tarball of:
- Org2blog itself
- Supporting package tinydb
-
Diffs to g-client
- g-client is by T V Raman
-
Diffs to org-mode
- org-mode is by Carsten Dominik, with many additions by others including myself.
To run it you'll also need:
- org-mode
- To patch org-mode
- g-client
- To patch g-client
- Bravery (or an equivalent amount of foolhardiness)
Some short documentation is in org2blog/README.org Basically:
- Have a Blogger account
-
M-x gblogger-blog
- That will give a parse error - T V tells me it's missing an external entity - but it will set up the blog posting url for your blog
- Write a blog post (which I'm doing right now)
- M-x org2blog-post
- And it will appear on Blogger, just like this did (or will).
Summary of changes to g-client
-
User-visible changes
-
Some automatic capture of data, by only these interface functions:
- gphoto-feeds
- gphoto-photo-add
- gblogger-blog
- gblogger-new-entry
- Changed gphoto-photo-add to ask for an album name from the list of albums, not an album id number.
- Added a more flexible way of getting authentication: Just customize (new variable) `g-user-auth-function'
-
Hooks
-
`g-app-afterpost-hook' which should be a function taking 2 args:
- The source filename
- The remote url
-
`g-app-afterpost-hook' which should be a function taking 2 args:
-
gphoto treats non-jpgs
- Can find them in directories
- (Forthcoming) Sends the right Content-Type for them.
- Uses (both emacs-bundled packages) `image' and `image-file' to know about image file types.
- g-load-defs.el now can be used as a symlink with my-site-start, because it knows its real location.
-
Some automatic capture of data, by only these interface functions:
-
Internal additions:
-
Added optional arguments to some interfaces
-
Mostly to pass storers around
- g-app-send-buffer
- g-app-view
-
Mostly to pass storers around
-
Added internal variables
-
To hold captured data
- gphoto-album-list
- gphoto-user-api-location
-
To name new XSL scripts
- g-xsl-blogpost->url
- g-xsl-photopost->url
- g-xsl-feed->albums
-
To hold a buffer-local storer until g-app posts
- g-app-storer
-
To hold captured data
-
Many commands associated with capturing data
- gblogger-blog-assign-data
- gphoto-feeds-assign-data
- g-app-setup-capture
- g-util-capture-x
- g-util-capture
-
Created some convenience functions because I found myself
repeating code:
- g-app-shell-command
- g-app-build-command
- g-app-build-storer
- g-app-setup-posting
- g-app-succeeded
- g-display-common
-
Changed g-auth to use customizable variable
`g-user-auth-function' for initial authentication.
- Added g-user-default-auth-function, that variable's default value.
-
Added optional arguments to some interfaces
Would have liked real test code
I would have liked to write proper test code for this.
Unfortunately, I basically need an immutable remote site to do it. I contacted Google about this but never heard back from them. That made development more difficult.