前提・実現したいこと
go templateを用いて動的に生成したHTMLの中の最初に表示される画像を取得しOGPに設定したいと考えています。
動的に生成されるHTML内のコードには、目的達成のためのidやclassなどを入れられないという前提です。
該当のソースコード
html
1<html> 2<head> 3 <meta charset="UTF-8"> 4 5 <!--OGP設定--> 6 <meta property="og:image" content="ここに入れたい" /> 7 8 <title>hoge</title> 9</head> 10 11<body> 12 <!-- この部分に動的に生成されたHTMLが挿入される --> 13 <!-- 最初に現れる画像を上部のmetaタグ内に入れたい --> 14</body> 15</html>
試したこと
何らか試そうと色々と調べてみたのですが、そもそも何を試すべきかも分かっていない状況です。
知恵をお貸しいただけると幸いです。
HTMLの生成は何を使っていますか?(例: Go標準のhtml/template)
ご質問ありがとうございます。
Go標準のhtml/templateを使用しております。
具体例のコードがほしいです。
生成コンテンツをどのようなデータとしてtemplateに渡して最終のHTMLを生成しているか最小のサンプルを書いてみてください。(og:imageのところは現状のままでいいです)
以下の2段階のフローがあるはずなんですが、
1. なんらかのデータから動的コンテンツの内容を確定
2. HTML全体を生成
基本は1.の元となるデータから画像URLを取り出すことが可能なデータ構造を設計しておいて、コンテンツの確定時とHTMLのテンプレートレンダリング時の双方にURLを渡すのが理想です。
1.より手前には触れられない、変えられない事情があるのであれば、1.と2.の間で確定コンテンツを解析する方法があります。そこで最初に見つかった画像URLを全体HTMLのテンプレートへのパラメータとして渡します。
どちらの方法もコンテンツに画像がなかった場合のデフォルト画像を用意しておいてコンテンツ内に画像URLがなかった場合などにデフォルト画像URLを使うようにすると良いかもしれません。
ありがとうございます!
>1.と2.の間で確定コンテンツを解析する方法があります。そこで最初に見つかった画像URLを全体HTMLのテンプレートへのパラメータとして渡します。
こちらにヒントを得て実装できました。
大変助かりました。ありがとうございました。
回答2件
あなたの回答
tips
プレビュー