phpstormではJSON-LDがシンタックスハイライトされない。
※カラースキームはNetBeansですがPhpStormです。
Version: 2016.1 / Build: 145.258
ふと、気が向いてパンくずのmicrodataをJSON-LDにて書いてみようと思ったのだが
どうにも綺麗にはいかなかったので、取り急ぎの対応方法と
何か知見を与えてくれる方が現れないかなぁと思い書いてみた。
標準的なJSON-LDによるmicrodata記述
まず、一番上に記述しているのが、標準的な物である。
コードについては、それっぽい所からサンプルを拝借しているが
基本的には Google Schemas の JSON-LD の話と思って頂きたい。
script
タグこそハイライトされているが
内部は認識しておらず、プレーンなままである。
そして、最悪このままでもとりあえず記述出来れば良い、という方もいるかもしれないが
問題点は画像内(1)で、謎の改行が数行入っているが、これはPhpStormの標準機能の
コードフォーマットをする度に、1行追加されていくのである。
(ショートカットキー1回押す毎に1行という事)
プレーンなだけでなく、普通に認識されてないのでフォーマットも正しく動作しない。
まず試した、typeの変更
次に、画像内(2)のように、ld+
を削除し、JSONとして認識された所
コードフォーマットもうまくいき、綺麗に展開された。しかし、ld+
が無いとSchemaの意味って恐らく無いよね?
現実的な対応
script
のtype
にtype="application/ld+json"
を増やす事も考えたが
僕は、そこまでの設定を知らないため、知っている中で対応出来る方法を探した。
そこで、出てきたのがヒアドキュメント内のハイライトである。
この画像は、実際にJavascriptをハイライトする設定をコピーし、JSONの設定をした物である。
(<<< JS をコピーしてIDでJSONファイルを選び、Places PatternsをJSONに書き換えるだけ)
この機能自体は他言語内で対象言語をハイライトしたりするものだが
ヒアドキュメント向けの設定が既に有ったため、すぐに対応が出来た。
この設定を入れることで、画像のようにハイライトされた。
しかし、展開はされず、ハイライトのみである。
あと微妙に悲しいのが、画像内(3)部分に改行を入れると、
画像内(1)の無限に改行が出てくる状態になってしまう。
最後に、賢いやり方
僕はまだJSON-LDを使い始めたばっかりなのでうまく使いこなせませんが
PHP向けJSON-LDのライブラリがありますので
そちらでコード出力すれば良いと思います。
おわり。