Pesquisar

Plugin para o Windows Live Writer

Vamos escrever hoje um plugin para o Windows Live Writer. Para quem não conhecer o Live Writer vem juntamente com o instalador do Messenger, ele é um cliente de blog. Você escreve e publica diretamente através do programa.

Primeiramente você deve adicionar a referencia a dll WindowsLive.Writter.Api.dll que fica dentro da pasta C:\Program Files\Windows Live\Writer ao seu projeto Class Library. Após devemos herdar uma classe de SmartContentSource e sobrescrever 3 de de seus métodos: CreateEditor, CreateContent, e GeneratePublishHtml.

O CreateEditor serve para atualizar o html depois que você insere ele, o CreateContent é o método chamado para Criar o html, então neste método devemos abrir uma janela para poder escrever o nosso conteúdo, e o GeneratePublishHtml é chamado para pegar o código html gerado.

    [WindowsLive.Writer.Api.WriterPlugin("910AE5F6-2BC5-4632-AF01-B53414D45E9F", "InsertCodeWordPress",
Description = "Insere código de programação para utilizar o highlight do WordPress.")]
[WindowsLive.Writer.Api.InsertableContentSource("Inserir Código", SidebarText = "Inserir Código")]
public class CodeFormatter : WindowsLive.Writer.Api.SmartContentSource
{
public override WindowsLive.Writer.Api.SmartContentEditor CreateEditor(WindowsLive.Writer.Api.ISmartContentEditorSite editorSite)
{
return new ContentEditor();
}

public override System.Windows.Forms.DialogResult CreateContent(System.Windows.Forms.IWin32Window dialogOwner, WindowsLive.Writer.Api.ISmartContent newContent)
{
using (InsertCodeFormatted entryform = new InsertCodeFormatted(string.Empty, string.Empty, string.Empty))
{
DialogResult result = entryform.ShowDialog(dialogOwner);
if (result == DialogResult.OK)
{
newContent.Properties.SetString("HtmlGerado", entryform.RetornaHtmlFinal());
newContent.Properties.SetString("CodigoPuro", entryform.RetornaCodigoPuro());
newContent.Properties.SetString("Linguagem", entryform.RetornaLinguagem());
newContent.Properties.SetString("HtmlVisual", entryform.CriarHtmlVisual());
}
return result;
}
}

public override string GeneratePublishHtml(WindowsLive.Writer.Api.ISmartContent content, WindowsLive.Writer.Api.IPublishingContext publishingContext)
{

return content.Properties.GetString("HtmlGerado", "");
}
}


A classe InsertCodeFormatter é um formulario windows onde eu posso colocar um texto e quando eu fecho ele eu seto o resultado para as propriedade do newContent através do método SetString(), e no método GeneratePublishHtml eu retorno o código anteriormente salvo.


Devemos sempre lembrar de inserir o atributo Writerplugin na classe. Após compilar devemos jogar o plugin dentro da pasta Plugins em C:\Program Files\Windows Live Writer

Nenhum comentário: