PowerShell Core 6.1 で Markdown からの変換を行う機能が追加されました。これを利用して、.md ファイルをドラッグアンドドロップすると .html ファイルを作ってくれるショートカットを作りました。
作り方と使い方
pwsh にパスが通っていることを前提とします。
- エクスプローラーで ファイルのない場所を右クリック > 新規作成(X) > ショートカット(S)
- "項目の場所を入力してください(T):" の欄に次の文字列を入力
pwsh -c "function f{$in = $($args -join ' '); $out = $($in -replace '\.md$','.html'); ConvertFrom-Markdown $in | Select-Object -ExpandProperty Html > $out; Read-Host "$out を作成しました。Enter を押すと終了します。"} f"
- ショートカットに .md ファイルをドラッグアンドドロップ
ファイル名に連続するスペースがあるとうまく動きません。
【小並感】pwsh コマンドの引数がふしぎ
ダブルクォートの中にダブルクォートとか心臓に悪すぎるんですが、なぜか動作しました。PowerShell Language Specification 3.0 を適宜読むようにしましたが、pwsh コマンドが引数の引用符をどう扱うか解説した文書は見つからなかったため、なぜ動いてるのか謎です。どなたかー?