Buenas,
hace tiempo que escribo en los blogs y una herramienta que me sería de mucha utilidad sería aquella que antes de postear un post redundancia en numancia, recorra el mismo y agregue en algunas palabras los links correspondientes. Por ejemplo, cada vez que se encuentre Visual Studio Team System, me gustaría que se reemplace por Visual Studio Team System.
Hace un tiempo, cuando Microsoft liberó la primera version Beta de Windows Live Writer, y con el mismo un SDK para integración de aplicaciones, pensé que mi problema estaba resuelto. Lamentablemente, el SDK no tiene grandes prestaciones, básicamente no permite acceder a todo el entorno de WLW (es que estoy mal acostumbrado a los SDKs de Offcie que permiten hacer de todo).
En un pequeño tiempo de ocio nunca/jamás en el trabajo, se me ocurrió que si bien no podía reemplazar todo, podia ahorrarme un poco de tiempo creando un form con algunos valores por defecto. Entonces tiré un par de lineas de diseño y cree un pequeño plug-in los siguientes componentes
Estas son mis clases:
- AddLinks: formulario para el mantenimiento y selección de Text/Url
- AddLinksPlugIn: clase que implementa la funcionalidad para crear el plug-in para Windows Live Writer
- dsLinks: dataset que almacena la informacion de los links
A continuación, cree mi pequeño form de administración y mantenimiento de Links y finalmente, agregué un par de líneas, para integrar la aplicacion en Windows Live Writer. Luego de compilar la clase, simplemente tenemos que copiarla en el directorio «plugins» de WLW y la próxima vez que iniciemos WLW tendremos acceso al plugin. Por defecto el path de instalación es: c:Program FilesWindows Live WriterPlugins.
Para utilizar el plug-in, podemos seguir los siguientes pasos:
-
Dentro de WLW, selecciono la opcion
Insert // El Bruno – WLW – Add Links.
-
Luego puedo seleccionar desde una lista de opciones, alguna combinación
Texto / Url. Utilizando para esto un filtro
bastante cutre sobre los campos de la GridView
- Despues de esto, podemos tener el link, por ejemplo antes podemos seleccionar directamente «Visual Studio Express«.
Por ahora funciona y me ha servido bastante en este post, aunque aún faltan «retocar» algunos detalles, como todo soft que sale en 15 min.
Si mañana consigo que me arreglen mi conexión a internet, subire el proyecto a www.codeplex.com, para compartirlo con todos; mientras tanto, lo pueden bajar desde aqui.
Saludos
El Bruno
PD: A continuación les dejo el código fuente de la clase de integración de plugin con Windows Live Writer
Imports System
Imports System.Windows.Forms
Imports WindowsLive.Writer.Api
<WriterPlugin("A3F307C7-17BF-439a-B5A4-113B04B25949", "El Bruno - Windows Live Writer - Add Links"), _
InsertableContentSource("&El Bruno - WLW - Add Links")> _
Public Class AddLinksPlugIn
Inherits ContentSource
Public Sub New()
MyBase.New()
End Sub
Public Overrides Function CreateContent(ByVal dialogOwner As System.Windows.Forms.IWin32Window, ByRef newContent As String) As System.Windows.Forms.DialogResult
'Return MyBase.CreateContent(dialogOwner, newContent)
Dim f As New ElBruno.Wlw.AddLinks.AddLinks
Dim r As DialogResult
' display add dialog
r = f.ShowDialog()
If r <> Windows.Forms.DialogResult.OK Then Exit Function
' create and return content
Dim content As String = "<a href='{0}'>{1}</a>"
newContent = String.Format(content, f.LinkUrl, f.LinkText)
' retorna el resultado del form
Return r
End Function
End Class