How to write a Windows Live Plugin: Charles Teague interview
“Scott Lovegrove is the outside/community the god of writer plugins; the inside god is Charles Teague”
by Angus Logan 7/1/2008
In this video Charles explain his position at Microsoft and how to write a hello World Plugin for the Windows Live Writer.
Catherine Heller interviews Charles Teague on Windows Live Writer, a free and extensible desktop blogging application that can work with practically every blogging service available.
Charles discusses the Windows Live Writer SDK which includes a managed API for extending Live Writer. He demonstrates the Polaroid Picture Plug-in and also shows how to build a "Hello World" plug-in in Visual Studio. You can find more information including SDK updates on the Windows Live Writer blog
Charles Teague: Building Windows Live Writer Plug-ins
Via Angus Logan
Wordpress 2.6 doesn’t support Live Writer out of the box
The Wordpress developer team tries to secure Wordpress. Hence, they deactivated the XML-RPC and the Atom API.
Without these APIs it is not possible to post to your blog using a desktop blogging software like WIndows Live Wiriter.
Thankfully they didn’t delete this API. It can be activated in Wordpress Administration (Settings –> Write).
Windows Live Writer Plug-ins for the Tech Preview
Last week the Windows Live Writer Team released the new Windows Live Writer CTP. The most important improvement, the new SDK 1.1. The new SDK gives the developer the instrument to create a new sort of plug-in. I’m calling them self-running plug-in because they run in the background. After you have set them up, everything works automatically and for every blog separately.
Even if the Windows Live Writer was release only a few days ago, the Windows Live Writer developers already create several plug-in to demonstrate the new SDK. The CTP is not an official version (no update through the Windows Updates) and this is why the plug-ins will not be available in the Windows Live Writer Gallery. The developers published their plugins on their blogs. Let’s do a tour together to see the all plug-ins available till now.
Scott Lovegrove was probably the most diligent. He created 6 simply plugins which demonstrate the different base classes of the new SDK.
Emotify Plug-in
Scott took his first plug-in and added an automatic to emotify your post. After you have pressed the “publish” button the plug-in will transform all text smiles
into the Windows Live smiles.
This plug-in uses the PublishNotificationHook base class
Now Playing
This plug-in adds to the end of every post the title and the artist of the song you listen to while you wrote the post.
Windows Media Player: You have to install the Media Player blogging plug-in for Windows Media Player
.![clip_image001[3] clip_image001[3]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0013.jpg)
This plug-in uses the HeaderFooterSource base class
Capitalize Title
The capitalize Title, capitalize the title of you post from “This is my new title” to “This Is My New Title”
Signature Plug-in
This plug-In adds a signature (you can use HTML as well) to every post.
![clip_image002[3] clip_image002[3]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0023.jpg)
Bold Hyperlink Plug-in
This plug-in changes every hyperlink to bold.
Profanity Checker
The profanity checker checks your blog post for forbidden words. If the plug-in finds a word from the black list, the post won’t be published. There is a password protection, too. If you child want to switch the plug-in off it can’t do it without the plug-in.
![clip_image003[3] clip_image003[3]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0033.jpg)
![clip_image004[3] clip_image004[3]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0043.jpg)
This plug-in use the PublishNotificationHook base class
All plugins (download and source code) are available on codeplex as usual.
Codeplex: http://www.codeplex.com/NewLiveWriterPlugins
Download: All Plugins
Installation: c:\program files\windows live\writer\plugins
Sample plug-ins from the Windows Live Writer SDK 1.1
This plug-in inform all you the people who follow you on twitter that there is a new post.
![clip_image005[4] clip_image005[4]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0054.gif)
DiggThis
This plug-in adds a diggthis badge to every post. The position is selectable through the plug-in options.
![clip_image006[3] clip_image006[3]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0063.gif)
Download: Windows Live Writer SDK 1.1
Download: DiggThis & Twitter Plug-in
Copy the *.Dll to C:\Program Files\Windows Live\Writer\Plugins\
Creative Commons footer Plug-in by Tim Heuer
Creative Commons footer plug-in
This plug-in by Tim Heuer adds a Creative Common Link to every blog post
![clip_image008[4] clip_image008[4]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0084.jpg)
Download: Creative Commons Attribution Plug-in
DotNetKicks Plug-in by John Papa
DotNetKicks Plugin
The plug-in by John Papa is very similar to the DiggThis badge plug-in. Instead of using DiggThis it uses ne .Net clone DotNetKicks.
![]()
You can change the appearance by the plug-in options
Download and Open Source: http://www.codeplex.com/wlwplugin4dnk
Live Writer on Eee PC
How to run Windows Live Writer on an Asus Eee PC?
flickr user Irregular Shed shows us how:
This is Windows Live Writer running on Windows XP, running virtually on Ubuntu 8.04 running virtually on Asus Eee PC. This setup let windows use 192 MB RAM. An according to the guy who did this, it’s perfectly usable.
Irregular Shed’s blog - Blogging from inside a virtual XP machine. w00t.
Did you know? Today: Live Writer Version Numbers
As a sideline an anecdote.
The new version number of the Live Writer Technical Preview is 14. When i saw this, I remembered that the previous release had version number 12. I assumed, version 13 was a developer release and never public. So I asked Ste and he forwarded my question to Scott. Apparently Microsoft Software never has a version number 13, because it’s an unlucky number. So Live Writer didn’t had a release 13.
What a bummer. I was looking forward to Windows 13 which wouldn’t need a keyboard or mouse as it could read its users mind ![]()
New SDK in Technical Preview Release
In the Technical Preview of Live Writer a new SDK is also included.
The new SDK isn’t a release, it’s a Technical Preview like the new Live Writer an therefore it’s not intended for production use. That’s why Live Gallery doesn’t accept plugins based on the SDK 1.1 Technical Preview. It’s also possible that the Developer Team make breaking changes in the new SDK code and new plugins won’t work in final release anymore.
The SDK has get two new plugin base classes:
Publish Notification Hook
Header/Footer Source
Publish Notification Hook
The new class PublishNotificationHook allows you to develop plugins which can run actions after pressing the Publish button. These actions can be executed before or after publishing the post. You can also cancel the publishing process.
Examples for use could be:
- Notification on new posts to services e.g. Twitter
- Ask for confirmation if no tags or keywords are provided with the post and cancel the publishing process if necessary
- Show a warning when the post contains invalid XHTML
With this new base class you can save settings in the post file for later use. Plugins written on that class have to be enabled or diabled for every blog configured in Live Writer individually.
Let’s go to some development stuff. It’s very easy to develop PublishNotificationHook plugins. Follow these steps:
- Create a new .NET Class Library (e.g. in Visual Studio)
- Add a reference to WindowsLive.Writer.Api
- Create a new class extending PublishNotificationHook
- Assign a GUID and a Plugin name with WriterPluginAttribute
- Overwrite OnPrePublish and/or OnPostPublish method
Here a tiny code example:
using System.Windows.Forms;
using WindowsLive.Writer.Api;
[WriterPlugin("????????-????-????-????-????????????", "My Plugin Name")]
public class MyPublishNotificationHook : PublishNotificationHook
{
public override bool OnPrePublish(IWin32Window owner, IProperties properties,
IPublishingContext publishingContext, bool publish)
{
// Do pre-publish work
return true;
}
public override void OnPostPublish(IWin32Window owner, IProperties properties,
IPublishingContext publishingContext, bool publish)
{
// Do post-publish work
}
}
Header/Footer Source
This type of plugins are used to add some text to the header or footer of a post. The user can’t modify this text in the Edit section of Live Writer but this text is visible in the preview section and in the published post.
This type of plugins could be used for example for:
- Header: Insert a Digg button
- Footer: Insert Social Bookmark links
The interessting part of this new base class is that the permalink of the post can be used even if it’s not exist yet.
Plugins which make use of this base class have to be enabled or disabled for every blog configured in Live Writer individually.
Let’s go to the development stuff:
- Create a new .NET Class Library (e.g. in Visual Studio)
- Add a reference to WindowsLive.Writer.Api
- Create a new class extending HeaderFooterSource erbt
- Assign a GUID and a Plugin name with WriterPluginAttribute
- If permalinks are used, overwrite the RquiresPermalink property and return true
- Overwrite GeneratePreviewHtml and GeneratePublishHtml
using System.Windows.Forms;
using WindowsLive.Writer.Api;
[WriterPlugin("????????-????-????-????-????????????", "My Plugin Name")]
public class MyHeaderFooterSource : HeaderFooterSource
{
public override bool RequiresPermalink
{
get { return true; }
}
public override string GeneratePreviewHtml(ISmartContent smartContent,
IPublishingContext publishingContext, out Position position)
{
position = Position.Footer;
return “<p><a href=\”#\”>Digg This</a></p>”;
}
public override string GeneratePublishHtml(IWin32Window dialogOwner,
ISmartContent smartContent, IPublishingContext publishingContext,
bool publish, out Position position)
{
position = Position.Footer;
return “<p><a href=\”http://digg.com/submit?url=”
+ publishingContext.PostInfo.Permalink
+ “\”>Digg This</a></p>”;
}
}
There are another changes like TaskServices which can run tasks in background.
SDK download (contains documentation and samples)
For feedback please use the Live Writer Developer forum
Windows Live Writer 2008 Technical Preview released
The new Technical Preview of the Windows Live Writer 2008 is available. Besides new several new functions and improves in the user interface there is an new Windows Live Writer API (Version 1.1). The CTP is intended for developers rather than consumers, but the new functions are great and even if I am not a developer but I couldn’t resist installing the new version. My opinion: I love it! There are not big changes which make the program heavier but only little changes which are very useful and intelligent.
What is new in the Windows Live Writer 2008 Technical Preview 06/2008?
- Improved category management: The categories are instant searchable (Microsoft Windows Vista)
- Image cropping
- Word count
- Image alignment: Images can be centered and not only text
- Typografic replacement
- Automatic glossary linking
- Improved User interface
- Soapbox Video Upload
- Improved image publishing
- Lightbox support (lightbox plugin necessary in the blog)
- New image border
- Image tilting
- GIF support
- Check for Updates /Notification
- Writer SDK 1.1 (Scott Lovegrove post an article about the new SDK on Live-Side.net)
Send Feedback
The following resources are available to you for providing feedback to the Writer team:
- For feedback about the Technical Preview, please use our Windows Live Writer (Beta) Forum.
- For feedback about the SDK, please use our Windows Live Writer Developer Forums.
via Live-Side.net and WriterZone
Serendipity and Windows Live Writer
The number of blog software which supports the Windows Live Writer is increasing by another blog software, Serendipity. First you need the XML-RPC plugin. Unfortunately the Windows Live Writer doesn’t detect Serendipity even after you install the plugin, so you have to do it manually.
Add a new blog or if it is the first blog you are adding the window will appear automatically.

Select "Another weblog service"

Enter the url to your weblog, your username and the password

The Windows Live Writer tries now to detect your blog software

Unfortunately it doesn’t detect Serendipity automatically. You have to do it by yourself.
Choose "Movable Type API" as weblog type
In the field below enter http://{full path to Serendipity}/serendipity_xmlrpc.php where you have to enter the url to you weblog without the { }

Finish
Note: If you don’t want to setup an ftp connection and use the Windows Live Writer to upload the photos, just create a folder "WindowsLiveWriter" inside the folder "upload" and give it write rights (666).
New Live Writer Blog
After a long time of inactivity, we relaunched the english Live Writer Blog.
The new Live Writer Blog is based on Wordpress instead of dasBlog. Along with this new base there are numerous of new features. You can rate the plugins we write about also the author of a post about a plugin can rate the plugin. With this, it’s easier for visitors to decide which plugins they want to install and which not.
The Design is now the same as on our german blog (corporate identity ;)).
Enjoy discovering the news Live Writer Blog

Insert Wikipedia Link
Wikipedia fans this plugin is for you. The insert Wikipedia link plug helps you to insert a Wikipedia Link in your blog post.
There are two ways to insert a link.
- Select a word
- Click on the on the Insert Wikipedia Link in the plugin list
- Done
(you can switch it off in the plugins options)
Other way
No selection just click on the insert Wikipedia Link
Type the text, the plugin will generate the Wikipedia link automatically
Download:
Source code: http://www.codeplex.com/WikipediaPlugin



















![clip_image007[4] clip_image007[4]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0074.jpg)
![clip_image010[4] clip_image010[4]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0104.gif)
![clip_image011[4] clip_image011[4]](http://www.live-writer.net/wp-content/uploads/2008/06/clip-image0114.gif)






