Markdown関連のコマンドレット導入
PowerShell Core 6.1では新しいコマンドレットとしてMarkdown (マークダウン)関連が導入された。
MarkdownはHTMLなどに変換することを前提としたシンプルなマークアップ言語で(もちろんそれ単体でもそれなりに可読性が高い)、現在ではさまざまなCMSでテキストを記述する際に使われている。Markdownはシンプルな書き方になっており、あとはシステムが自動的にHTMLなどに変換して使われる。
PowerShell Core 6.1で導入されたMarkdown関連の主なコマンドレットは次のとおり。
コマンドレット | 内容 |
---|---|
Show-Markdown | MarkdownテキストをVT100ターミナル向けに変換して出力、または、HTMLに変換してブラウザで閲覧 |
Get-MarkdownOption | 変換先シーケンスコードなどMarkdown変換に関するオプションを表示 |
Set-MarkdownOption | 変換先シーケンスコードなどMarkdown変換に関するオプションを設定 |
ConvertFrom-Markdown | Markdownから変換した後のオブジェクトを値として保持 |
Markdownデータを変換するコマンドレットがShow-Markdownだ。デフォルトではMarkdownデータをVT100互換のターミナルで表示できる形式に変換する。オプションを指定することでブラウザで表示できるHTMLに変換してくれる。
Get-MarkdownOptionとSet-MarkdownOptionは、Markdownデータの変換に関連するオプションを表示したり設定するためのコマンドレット。今のところVT100互換ターミナルのデータに変換する際のシーケンスコードが設定されている。
ConvertFrom-MarkdownはMarkdownデータを変換した後のHTMLデータやVT100互換テキストを変数として保持するためのコマンドレットになっている。
Markdown系コマンドレットの実行例
これらコマンドレットは実際に使ってみるのがわかりやすい。まず、次のようなMarkdown形式のREADMEファイルを用意する。
RAEDME.md - マークダウン形式のサンプル
PS /Users/daichi/tmp> Get-Content ./README.md
TTT COMMANDS
============
TTT COMMANDS is a development commands set to build information system
that could handle large datasets rapidly and flexibly. This gives you
a way lit power to build a fast process system without some kind of
databases. You would build the data process system using only TTT
COMMANDS, Unix-style basic commands and text datasets on your own favorite
operating systems.
TTT COMMANDS is licensed under the **[2-clause BSD license](LICENSE)**.
Download
--------
[https://github.com/daichigoto/tttcmds/archive/master.zip](https://github.com/daichigoto/tttcmds/archive/master.zip)
Installation
------------
## required packages installation
* FreeBSD 11.x
sudo pkg install kyua
* Darwin 16.0.0 (you need a [brew](http://brew.sh/))
brew install bsdmake
brew install kyua
* Ubuntu 16.04
sudo apt-get install clang
sudo apt-get install libbsd-dev
sudo apt-get install freebsd-buildutils
# There is no kyua package for Ubuntu.
# There is no ATF package for Ubuntu.
## build and install
* FreeBSD 11.x
make clean build
sudo make install
* Darwin 16.0.0
bsdmake clean build
sudo bsdmake install
* Ubuntu 16.04
bmake clean build
sudo bmake install
*Homepage:* https://github.com/daichigoto/tttcmds/
PS /Users/daichi/tmp>
Show-Markdownコマンドレットを使うと、MarkdownデータをVT100互換のターミナルで表示できる形式に変換して表示してくる。
Show-Markdownコマンドレットの実行例
PS /Users/daichi/tmp> Show-Markdown ./README.md
...
Show-Markdownコマンドレットはオプションとして-UseBrowserを指定すると、データをHTMLに変換した後、Webブラウザでデータを表示してくれる。
Show-MarkdownコマンドレットでHTMLデータに変換する場合
PS /Users/daichi/tmp> Show-Markdown ./README.md -UseBrowser
PS /Users/daichi/tmp>
Get-MarkdownOptionコマンドレットを実行すると、今のところVT100互換ターミナルで使用できるエスケープシーケンスが定義されていることを確認できる。
Get-MarkdownOpitionコマンドレットの基本的な使い方
/Users/daichi/tmp> Get-MarkdownOption
...
ConvertFrom-MarkdownコマンドレットはMarkdownデータを変換した後のデータを変数として保持するといった用途で使えるようだ。次のように変換後のデータが保持されていることがわかる。デフォルトではHTMLに変換されたものが、-AsVT100EncodedStringを指定するとVT100互換ターミナルで利用できる形式のテキストデータが保持されていることがわかる。
こんな感じでPowerShell Core 6.1にはMarkdownに関するコマンドレットが追加された。PowerShell Coreが今まさに開発されているプラットフォームであることを示す一つの例と言えるのではないかと思う。これはなかなか便利なコマンドレットだ。