2014年3月24日月曜日

Windows Live Writer のプラグイン Dynamic Template plug-in で「アンカー」「日付」「ソースコードの整形」をテンプレートで挿入する

1. テンプレートを挿入する Snippets Manager の起動でエラーが表示される

Windows Live Writer でテンプレートを挿入するプラグインとして、Snippets Manager  を利用していた。

このプラグインを起動するとき、エラーが表示されるようになってしまった。

SnapCrab_No-0879

使用上は問題ない。しかし、エラー表示が気になるので、同じような機能を持つプラグインに乗り換えることにした。

 

2. Dynamic Template plug-in に乗り換えた

Dynamic Template plug-in は、テンプレートを登録できるプラグイン。

SnapCrab_NoName_2015-12-2_2-53-0_No-00

特徴は、静的なテンプレートだけではなく、C# を利用して動的に文字列を生成することができること。

より、DynamicTemplate.msi をダウンロードしてインストールした。

 

a. 基本的な書き方

テンプレートの中で C# の文を実行するには、

<% 文 %>

式の結果を得るには、

<%= 式 %>

「選択した文字列」を表す、特別な変数も用意されている。

_selection

 

b. 「アンカー」を挿入する

最初に、Snippets Manger を使ってアンカーを作成したテンプレートと同じものを登録する。

Windows Live Writer のメニューより、挿入 > Dynamic Template を選択。

SnapCrab_No-0878

Insert Template ダイアログで New ボタンを押す。

New Template ダイアログの Name: フィールドにテンプレートの名前を入力する。ここでは Anchor とした。

SnapCrab_No-0883

このテンプレートを使うとき、アンカーを挿入するために、「アンカーの名前」をダイアログで入力する必要がある。

そのためには、Edit Template: 画面で、ダイアログで入力された文字列を受け取る変数 name と、ダイアログに表示するラベル Anchor name を設定した。

SnapCrab_No-0884

Template Body: には、以下のように入力する。

<a name="<%= name %>"><%= _selection %></a>

 

c. 「追記(日付): を挿入する

ブログの内容を後から「追記」するとき、自分の場合、以下の形式で書くようにしている。

追記(2014/3/23): 追記したい内容

「日付」を自動で入力するには C# を利用して、Template Body に以下のように入力する。

<strong>追記(<%= DateTime.Today.ToString("yyyy/M/d") %>)</strong>:

ついでに、「追記」の位置に日付でアンカーを挿入するには、以下のように記述する。

<strong>追記<a name="<%= DateTime.Today.ToString("yyyyMMdd") %>"></a>(<%= DateTime.Today.ToString("yyyy/M/d") %>)</strong>:

 

d. ソースコードを整形する

ブログにソースコードを貼り付ける場合、google-code-prettify を利用している。ブログに内容を貼り付けるには、コードを選択し、 AutoHotKey で自動入力している。

同じようなことを Dynamic Template plug-in で行うには、Template Body に以下のように入力する。

<pre class="prettyprint"><%= _selection %></pre>

このテンプレートを利用するには、

  1. Windows Live Writer にソースコードを貼り付ける。
  2. ソースコードを選択し、上記のテンプレートを実行する。

 

e. HTML のソースを変換する

追記(2014/3/26): HTML のソースを、Windows Live Writer の「編集」モードで記述したときの状態に変換することができる。Level 3 - Using Selection > Watch Example 4 にサンプルが紹介されている。

<%= HtmlDecode(_selection) %>

これにより、例えば、以下の HTML のアンカー表現を、

<a href="http://jutememo.blogspot.jp/">すぐに忘れる脳みそのためのメモ</a>

下記のように変換することができる。

すぐに忘れる脳みそのためのメモ

これにより、書式情報を持つことができないエディタから、HTML のアンカーを貼り付けたものを簡単に変換することができるようになった。

ただし、Windows Live Writer に HTML のアンカーを貼り付けると、下記のように http:// ではじまる部分が自動的にリンクに変換されてしまうので、予めリンクを削除しておく必要がある。

<a href=http://jutememo.blogspot.jp/>すぐに忘れる脳みそのためのメモ</a>

Make Link  で作成 した HTML のアンカーを、Firefox のアドオン QuickFox NotesGoogle Keep に保存したものを活用しやすくなった。