Open Live Writer に Syntax Highlight プラグインを追加する
※このポストは、過去のポスト「Windows Live Writer から PowerShell のコードを投稿」のアップデート版です。
※とりあえずプラグインの設定だけしたい、という方は、末尾にダウンロード・インストールを行うスクリプトを掲載しています。
Windows Live Writer から Open Live Writer へ
ブログツールとして Windows Live Writer を使用している(いた)方も多いと思いますが、Windows Essentials 2012 以降、更新が停止しています。また、Windows Essentials 2012 スイートは 2017 年 1 月 10 日でサポート終了となり、それ以降はダウンロードできなくなります。
上記にも記載されている通り、Windows Live Writer はオープンソース化され、現在はオープンソースプロジェクトとして開発が進められています。
Open Live Writer のダウンロードとインストール
Open Live Writer は以下の URL からダウンロードできます。
インストール時に、ブログへの接続情報が必要です。(インストーラーの中で 1 つ目のブログの設定が必須となっているため、バイナリのインストールだけ先に行うことはできません。)
アカウント(接続先ブログ)の追加(2 つ目以降)は、インストール後に実施できます。現在のところ、Wordpress など複数のサービスに対応しています。
なお、Windows Live Writer は日本語版がありましたが、Open Live Writer は今のところ日本語表示には対応していません。
Open Live Writer へ Syntax Highlight Plug-in を追加
PowerShell など、コードを WordPress へ投稿する際には、Syntax Highlight を設定すると思いますが、Syntax Highlight Plug-in を使用すると Open Live Writer 上で手軽にコードの貼り付けが行えます。
Windows Live Writer 向けの Version 1.x 系と、Open Live Writer 向けの Version 2.x 系が公開されています。Version 2.x 系は、現在 2.0.0 BETA がダウンロード可能です。
- OpenLiveWriter Version Of Syntax Highlighter Plugin Available Now
- Download Link (Version 2.0.0 Beta)
プラグインのインストール・設定方法
インストール方法は以下の 2 種類です。
- Open Live Writer デフォルトのプラグイン配置パスに、ダウンロードしたプラグインファイル(中身)を配置(コピー)
- 専用(個別)のプラグインフォルダーにダウンロードしたプラグインファイル(中身)をコピーし、レジストリ上で追加のプラグインフォルダーとしてパスを設定
1 番目の方法は、Open Live Writer のインストールパス配下にプラグインファイルをコピーする方法です。大変お手軽ですが、インストールパスにはバージョン情報が含まれており、Open Live Writer のバージョンアップに伴いパスが変更されるため、Open Live Writer をバージョンアップする際には、ファイルを再度コピー(移動)する必要があります。
デフォルトのパス
C:\Users\<UserName>\AppData\Local\OpenLiveWriter\app-<Version>\Plugins
2 番目の方法は、自分の好きなフォルダーをプラグインフォルダーに設定できます。レジストリの以下のパスに、適当な名前で読み込むパスを値に設定すれば、追加でプラグインの読み込みを行ってくれます。
HKCU\SOFTWARE\OpenLiveWriter\PluginAssemblies
名前は、他のキー名と重複しなければ何を入れても問題ありません。値に設定された文字列をパスとして読み込みます。
正常にプラグインがロードできると、リボンの Insert にプラグインのボタンが表示されます。
面倒なので
プラグインを自動でダウンロードし、上記 2 番目の方法でインストールするスクリプトを作成しました。
#Requires -Version 4 $ErrorActionPreference = "Stop" $installsource = "https://richhewlett.blob.core.windows.net/blogdownloads/SyntaxHighlight_WordPressCom_OLWPlugIn_V2.0.0.zip" $installtarget = $env:LOCALAPPDATA + "\OpenLiveWriter Additional Resources\Plugins" $regkey = "HKCU:\SOFTWARE\OpenLiveWriter\PluginAssemblies" $dllname = "SyntaxHighlight_WordPressCom_OLWPlugIn.dll" $logbase = $env:TEMP $logprefix = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) if($logprefix -eq "") { $logprefix = "powershell" } $logts = Get-Date -Format yyyyMMddHHmmss $logname = "${logbase}\${logprefix}-${logdate}.log" function Log([string] $msg) { $ts = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $output = "${ts} ${msg}" $output | Write-Output $output | Out-File -FilePath $logname -Encoding utf8 -Append } $message = "このスクリプトは Open Live Writer 用の SyntaxHighlightPlugin をインストールします`r`n続行しますか?" $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "インストールを実行します" $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "インストールを中止します" $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no) $result = $host.ui.PromptForChoice($title, $message, $options, 0) if($result -eq 1) { exit 0 } Log($MyInvocation.MyCommand.Path) Log("インストールを開始します - {0}" -f $env:COMPUTERNAME) Log("構成をチェックしています") if(!(Test-Path $regkey)) { Log("レジストリー キー {0} が存在しません" -f $regkey) Log("Open Live Writer がインストールされていないか、正しく構成されていません") $message = "続行しますか?" $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "現状の構成にかかわらずインストールを続行します" $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "インストールを中止します" $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no) $result = $host.ui.PromptForChoice($title, $message, $options, 0) switch($result) { 0 { New-Item -Path $regkey -Force | Out-Null } 1 { exit 0 } } } $uri = New-Object System.Uri($installsource) $downloadfile = $env:TEMP + "\" + (Split-Path $uri.AbsolutePath -Leaf) Log("インストールファイルをダウンロードします") Log("Download from : {0}" -f $installsource) Log("Save to : {0}" -f $downloadfile) Invoke-WebRequest -Uri $uri -UseBasicParsing -OutFile $downloadfile Log("プラグインをインストールします") Log("Install to : {0}" -f $installtarget) if(!(Test-Path $installtarget)) { New-Item -ItemType Directory -Path $installtarget -Force | Out-Null } Expand-Archive -Path $downloadfile -DestinationPath $installtarget -Force Log("プラグインを Open Live Writer に登録します") New-ItemProperty -Path $regkey -Name SyntaxHighlightPlugin -Value ($installtarget + "\" + $dllname) -Force | Out-Null $p = Get-Process -Name OpenLiveWriter -ErrorAction SilentlyContinue if($p -ne $null) { Log("Open Live Writer が起動中です") Log("全ての Open Live Writer プロセスを終了後、再度 Open Live Writer を起動してください") } Log("インストールが完了しました") exit 0
GitHub からダウンロードできますので、利用されたい方はご自由にどうぞ。なお、動作や実行結果に関する保証などはありませんので、自己責任でお願いします。
なお、実行の際、引数などはありませんので、ダウンロードしたファイルを配置したフォルダーへ移動して、
PS> .\Install-OLWSyntaxHighlightPlugIn.ps1
で OK です。
※スクリプトの実行が制限されている場合は、スクリプトの実行ポリシーの変更が必要です。
コメントを残す