以下の内容はhttps://tech.guitarrapc.com/entry/2013/11/03/125154より取得しました。


はてなブログで SyntaxHighlighter を使って PowerShell コードを表示するときの注意

はてなブログさんのスーパーpre記法で対応してくれれば悩まないんですけど。

SyntaxHighlighterで表示するようにしていますが、markdownのようにコードブロックでくくっていないため特殊文字がhtmlタグに勝手に変換されてしまいます。

今回は、その対策です。

どんな問題なのか

例えば、以下のコードを表示してみましょう。

string[]$hoge
"<>"
https://tech.guitarrapc.com

普通にはてなブログでSyntaxHighlighterを使って書いてみます。

string[]$hoge
"<>"
https://tech.guitarrapc.com

結果このように崩れて表示されます。(コード変換されないように変換された結果を載せます。)

string&#91;&#93;$hoge
"&lt;&gt;"
https&#58;//tech.guitarrapc.com

問題となる特殊文字

ようはhtmlタグに変換されてしまう原因を取り除けばいいわけです。

問題となる特殊文字の対象と変換に使うHTMLエンティティCodeは以下です。

ASCII Character HTML エンティティ Code
[ \&#91;
] \&#93;
< \&lt;
> \&gt;
: \&#58;
( \&#040;
) \&#041;

変換する

これらを差し替えて次のようにすれば、表示が崩れません。

string[]$hoge
"<>"
http://tech.guitarrapc.com

変換スクリプト

というわけで、変換スクリプトです。

guitarrapc - PowerShellUtil / Resolve-SyntaxHighlighterPowerShellIntoHatena

コードをヒアストリングで囲んで、 | で渡すだけです。

$inputcode = @'
string[]$hoge
"<>"
http://tech.guitarrapc.com
'@
$inputcode | Resolve-SyntaxHighlighterPowerShellIntoHatena

はてなさん、スーパーPre記法に対応してください。

注記

2016年、ついに対応してくれました!

https://tech.guitarrapc.com/entry/2013/09/12/143654




以上の内容はhttps://tech.guitarrapc.com/entry/2013/11/03/125154より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14