LoginSignup
2
4

More than 5 years have passed since last update.

PhpStormでJSON-LDが直接書きにくい(実質、直接書けない)

Last updated at Posted at 2016-05-09

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の意味って恐らく無いよね?

現実的な対応

scripttypetype="application/ld+json"を増やす事も考えたが
僕は、そこまでの設定を知らないため、知っている中で対応出来る方法を探した。
そこで、出てきたのがヒアドキュメント内のハイライトである。

この画像は、実際にJavascriptをハイライトする設定をコピーし、JSONの設定をした物である。
(<<< JS をコピーしてIDでJSONファイルを選び、Places PatternsをJSONに書き換えるだけ)

この機能自体は他言語内で対象言語をハイライトしたりするものだが
ヒアドキュメント向けの設定が既に有ったため、すぐに対応が出来た。

この設定を入れることで、画像のようにハイライトされた。
しかし、展開はされず、ハイライトのみである。
あと微妙に悲しいのが、画像内(3)部分に改行を入れると、
画像内(1)の無限に改行が出てくる状態になってしまう。

最後に、賢いやり方

僕はまだJSON-LDを使い始めたばっかりなのでうまく使いこなせませんが
PHP向けJSON-LDのライブラリがありますので
そちらでコード出力すれば良いと思います。

おわり。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4