はてなブログさんのスーパーpre記法で対応してくれれば悩まないんですけど。
SyntaxHighlighterで表示するようにしていますが、markdownのようにコードブロックでくくっていないため特殊文字がhtmlタグに勝手に変換されてしまいます。
今回は、その対策です。
どんな問題なのか
例えば、以下のコードを表示してみましょう。
string[]$hoge "<>" https://tech.guitarrapc.com
普通にはてなブログでSyntaxHighlighterを使って書いてみます。
string[]$hoge "<>" https://tech.guitarrapc.com
結果このように崩れて表示されます。(コード変換されないように変換された結果を載せます。)
string[]$hoge "<>" https://tech.guitarrapc.com
問題となる特殊文字
ようはhtmlタグに変換されてしまう原因を取り除けばいいわけです。
問題となる特殊文字の対象と変換に使うHTMLエンティティCodeは以下です。
| ASCII Character | HTML エンティティ Code |
|---|---|
[ |
\[ |
] |
\] |
< |
\< |
> |
\> |
: |
\: |
( |
\( |
) |
\) |
変換する
これらを差し替えて次のようにすれば、表示が崩れません。
string[]$hoge "<>" http://tech.guitarrapc.com
変換スクリプト
というわけで、変換スクリプトです。
guitarrapc - PowerShellUtil / Resolve-SyntaxHighlighterPowerShellIntoHatena
コードをヒアストリングで囲んで、 | で渡すだけです。
$inputcode = @' string[]$hoge "<>" http://tech.guitarrapc.com '@ $inputcode | Resolve-SyntaxHighlighterPowerShellIntoHatena
はてなさん、スーパーPre記法に対応してください。
注記
2016年、ついに対応してくれました!