oEmbed埋め込みの対応
Closed this issue · 14 comments
Twitterのツイートを埋め込む場合などを考えると、oEmbedのコンテンツを埋め込む機能を追加したほうが良いと考える。
例えば https://github.com/sounisi5011/novel-dinner-from-twitter-977500688279154688/tree/develop/0.0.1 だと、以下の構文でoEmbedを埋め込めるようにしてある。
<object type="application/x.oembed" data="https://twitter.com/jack/status/20">
<param name="lang" value="ja">
</object>
これに対応するのはどうだろう?
PugでHTMLを生成した後のこの場所に、そういうものを変換するプラグインを埋め込む。
Line 101 in 963753b
MIMEタイプはapplication/x.oembed
でいいのだろうか?
対象はHTMLなのだから、text/x-oembed+html
みたいな形式が良いのではないだろうか。
MIMEタイプは
application/x.oembed
でいいのだろうか?
対象はHTMLなのだから、text/x-oembed+html
みたいな形式が良いのではないだろうか。
RFC 6838とWikipediaによると、x-
接頭辞は私的利用目的の名前を示さないらしい。その目的はx.
接頭辞に置き換わっている。
あと、+html
接尾辞はStructured Syntax Suffix Registryに登録されていない。これも使用しないほうがいいだろう。
あと、
+html
接尾辞はStructured Syntax Suffix Registryに登録されていない。これも使用しないほうがいいだろう。
oEmbedの仕様で明記されているMIMEタイプのapplication/json+oembed
とtext/xml+oembed
にも、登録されていない+oembed
接尾辞が使われているようなんだけど…
∴気にしなくてもいいんじゃないだろうか?
object
要素のdata
属性に指定してあるURLが、直接oEmbedのデータを示すものではないから、MIMEタイプがoembed
なのはすごい違和感。こういう構文ならまだ納得がいく。
<object type="application/x.oembed" data="https://publish.twitter.com/oembed?url=https://twitter.com/jack/status/20">
<param name="lang" value="ja">
</object>
ただ、これだと本末転倒というか、せっかく用意されているoEmbed 4. Discoveryの仕様がもったいないというか。
object
要素のdata
属性に指定してあるURLが、直接oEmbedのデータを示すものではないから、MIMEタイプがoembed
なのはすごい違和感。こういう構文ならまだ納得がいく。<object type="application/x.oembed" data="https://publish.twitter.com/oembed?url=https://twitter.com/jack/status/20"> <param name="lang" value="ja"> </object>ただ、これだと本末転倒というか、せっかく用意されているoEmbed 4. Discoveryの仕様がもったいないというか。
application/x.oembed-provider
とかはどうだろう?
object
要素のdata
属性に指定してあるURLが、直接oEmbedのデータを示すものではないから、MIMEタイプがoembed
なのはすごい違和感。こういう構文ならまだ納得がいく。<object type="application/x.oembed" data="https://publish.twitter.com/oembed?url=https://twitter.com/jack/status/20"> <param name="lang" value="ja"> </object>ただ、これだと本末転倒というか、せっかく用意されているoEmbed 4. Discoveryの仕様がもったいないというか。
application/x.oembed-provider
とかはどうだろう?
URLの対象は「oEmbed provider」ではないんだよな…
「oEmbed provider」が提供するコンテンツではあるんだが…
object
要素のdata
属性に指定してあるURLが、直接oEmbedのデータを示すものではないから、MIMEタイプがoembed
なのはすごい違和感。こういう構文ならまだ納得がいく。<object type="application/x.oembed" data="https://publish.twitter.com/oembed?url=https://twitter.com/jack/status/20"> <param name="lang" value="ja"> </object>ただ、これだと本末転倒というか、せっかく用意されているoEmbed 4. Discoveryの仕様がもったいないというか。
application/x.oembed-provider
とかはどうだろう?URLの対象は「oEmbed provider」ではないんだよな…
「oEmbed provider」が提供するコンテンツではあるんだが…
あくまで、対象のリソースはHTMLなんだ。
そこからoEmbedの情報を抜き出して、展開するんだ。
だとしたら、リソースのファイルタイプとして示そうとしていること事態が間違いなのでは?
例えるなら、動画のファイルタイプで、動画のプレイヤーを定義しようとしているようなもの。
動画の形式と、動画のプレイヤーは、全く違う別物。
object
要素のtype
属性は省略できるみたいだから、type
属性で表すのを止めようよ。
#36 (comment) を考えると、こうするのが良いのかな?
<object data="https://twitter.com/jack/status/20" data-oembed>
<param name="lang" value="ja">
</object>
#36 (comment) を考えると、こうするのが良いのかな?
<object data="https://twitter.com/jack/status/20" data-oembed> <param name="lang" value="ja"> </object>
表示前に変換するから、どうでもいいといえばどうでもいいんだが、type
属性がない場合は、ブラウザはiframe
として表示するんだよな…
なんか…違和感が…
#36 (comment) を考えると、こうするのが良いのかな?
<object data="https://twitter.com/jack/status/20" data-oembed> <param name="lang" value="ja"> </object>
data-oembed
属性よりも、data-expand-oembed
属性のほうがいいゾ。
<object data="https://twitter.com/jack/status/20" data-expand-oembed>
<param name="lang" value="ja">
</object>
対象のリソースをoEmbed形式で展開するんだから。
本末転倒な気がするけど、もうこういう構文でいいんじゃないかな。
<oembed target="https://twitter.com/jack/status/20">
<param name="lang" value="ja">
</oembed>
本末転倒な気がするけど、もうこういう構文でいいんじゃないかな。
<oembed target="https://twitter.com/jack/status/20"> <param name="lang" value="ja"> </oembed>
Custom Elementsに習って、要素名にはハイフンを含めたほうがいい。
サーバーサイドで変換するからCustom Elementsを考慮する必要は全く無いが、後で読んだ時に、それが明らかに標準的ではない要素名だと判別できる。
<x-oembed target="https://twitter.com/jack/status/20">
<param name="lang" value="ja">
</x-oembed>
わざわざMetalsmithのプラグインを作るよりも、PostHTMLのプラグインにしたほうがいいと思うんだ。
sounisi5011.jp/src/pages/novels/竜狩り達の敗北.pug
Lines 8 to 9 in b5ddc53
sounisi5011.jp/src/pages/novels/竜狩り達の敗北.pug
Line 236 in b5ddc53
こういうことで事足りるなら、oEmbedに対応する意味がない。このほうが確実だし