回答編集履歴
1
もう少しコードを整理
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
https://play.golang.org/p/
|
5
|
+
https://play.golang.org/p/zY1YPo4CddV
|
6
6
|
|
7
7
|
```go
|
8
8
|
|
@@ -70,11 +70,9 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
|
73
|
-
func
|
73
|
+
func getFirstImageURL(contents string) string {
|
74
74
|
|
75
|
-
u := DefaultOGImageURL
|
76
|
-
|
77
|
-
// ここでcontentsから最初の画像リンクを取得して見つかったら
|
75
|
+
// ここでcontentsから最初の画像リンクを取得して見つかったらそれを返す
|
78
76
|
|
79
77
|
tokenizer := html.NewTokenizer(bytes.NewBufferString(contents))
|
80
78
|
|
@@ -102,7 +100,7 @@
|
|
102
100
|
|
103
101
|
if string(key) == "src" {
|
104
102
|
|
105
|
-
u
|
103
|
+
return string(value)
|
106
104
|
|
107
105
|
}
|
108
106
|
|
@@ -120,9 +118,17 @@
|
|
120
118
|
|
121
119
|
}
|
122
120
|
|
121
|
+
return DefaultOGImageURL
|
122
|
+
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
func renderHTML(w io.Writer, contents string) {
|
128
|
+
|
123
129
|
layoutTemplate.Execute(w, map[string]interface{}{
|
124
130
|
|
125
|
-
"OGImageURL":
|
131
|
+
"OGImageURL": getFirstImageURL(contents),
|
126
132
|
|
127
133
|
"Contents": template.HTML(contents),
|
128
134
|
|