Hugo 静的サイトジェネレーターブログを開設してみる⑥twitterカードを作成する


前回はカスタムCSSを当てることができたので、今回はTwitterカードのセッテイングをしていく！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617331/87e00fb4-268c-6e20-c793-ab2c018afa7a.png)

#前回の記事
**[Hugo 静的サイトジェネレーターブログを開設してみる①Hugoインストール編]
(https://qiita.com/SakagamiKeisuke/items/e4ee309a44dce22e6229)**
**[Hugo 静的サイトジェネレーターブログを開設してみる②Netlifyでホスト＆デプロイ実行まで](https://qiita.com/SakagamiKeisuke/items/8a106fcf8f733b6ff12d)**
**[Hugo 静的サイトジェネレーターブログを開設してみる③トップページの編集](https://qiita.com/drafts/6f9dffe5c5fc32456fc9)**
**[Hugo 静的サイトジェネレーターブログを開設してみる④記事contentの作成](https://qiita.com/SakagamiKeisuke/items/1c91e757d85457906947)**
**[Hugo 静的サイトジェネレーターブログを開設してみる⑤カスタムCSSを編集する](https://qiita.com/SakagamiKeisuke/items/8c917eb515987b572c05)**

# OGP Open Graph Protco
FacebookやTwitterなどででシェアするとき、
ページタイトル・URL・概要説明・アイキャッチ画像をく表示させるもの
これを設定することになります。


# head.htmlにmetaタグを書く

色々試したところ、この状態でTwitterカード表示できました。
省略できそうな部分はコメントアウトしています。
今回フェイスブック対応はしていない状態です。

```HTML:Blog/layouts/partials/head.html
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

<!-- https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup -->
<!-- twittercardtag -->
<!-- twittercard  summary、summary_large_image、app、player -->
    <meta name="twitter:card"           content="summary_large_image">
<!-- OpenGraph -->
    <!-- マークアップにog：type、og：title、og：descriptionが存在するが
        twitter：cardが存在しない場合、サマリーカードがレンダリングされることがある-->
    <meta property="og:type"            content="article">
    <meta property="og:title"           content="{{ .Params.title }}" />
    <meta property="og:description"     content="{{ .Params.description }}" />
    <meta property="og:image"           content="{{ .Site.BaseURL }}{{ .Site.Params.Twitterthumbnail }}" />

<!-- summary、summary_large_image、プレーヤーカードで使用 -->
<!-- twitterユーザー名 -->
    <meta property="twitter:site"        content="{{ .Site.Params.Twitterusername  }}">
<!-- twitterID -->
    <meta property="twitter:site : id"   content="{{ .Site.Params.Twitterid  }}">
<!-- @コンテンツ作成者のユーザー名 --><!-- summary_large_imageカードで使用 -->
    <meta property="twitter:creator"     content="{{ .Site.Params.Creator }}">
<!-- @コンテンツ作成者のユーザーID summary、summary_large_imageカードで使用 -->
    <meta property="twitter:creator:id"  content="{{ .Site.Params.Creatorid }}">
<!-- コンテンツの説明（最大200文字） summary、summary_large_image、プレーヤーカードで使用 -->
    <!-- <meta property="twitter:description" content="{{ .Params.description }}" /> -->
<!-- コンテンツのタイトル（最大70文字） summary、summary_large_image、プレーヤーカードで使用 -->
    <!-- <meta property="twitter:title"       content="{{ .Params.title }}" /> -->
<!-- カードで使用する画像のURL。画像のサイズは5MB未満。JPG、PNG、WEBP、GIF形式がサポート。
    アニメーションGIFの最初のフレームのみが使用。SVGは非サポート。 -->
<!-- summary、summary_large_image、プレーヤーカードで使用 -->
    <!-- <meta property="twitter:image"       content="{{ .Site.BaseURL }}{{ .Site.Params.Twitterthumbnail }}" /> -->

<!-- Facebook用設定 -->
<!-- <meta property="fb:app_id" content="App-ID（15文字の半角数字）" />
もしくは
<meta property="fb:admins" content="adminID（15文字の半角数字）" /> -->
    <!-- <meta property="og:url"             content="{{ .Site.BaseURL }}" />
    <meta property="og:site_name"       content="{{ .Site.Params.Twitterusername  }}" />
    <meta property="og:description"     content="{{ .Params.description }}" /> -->

</head>
```

# .Site.Params変数、 .Params変数

## .Site.Params変数
.Site.Params変数は、config.tomlに記述している [params]以下を参照します。


```TOML:Blog/config.toml
[params]
header_image   = "/img/coffee.jpg"

# twittercard画像設定で参照(Blog/layouts/partials/head.html)
twitterusername  = "sakaP🌈さかぴ 如実知見"
twitterid        = "@slope_top_kei"
creator          = "KEISUKE_SAKAGAMI"
creatorid        = "@slope_top_ke"
description      = "私の価値観、学び、人生経験をありのままにアウトプットするブログです"
twittertitle     = "sakaP🌈さかぴのBlog"
title            = "sakaP🌈さかぴ"
twitterthumbnail = "/img/coffee.jpg"
```


## .Params変数
.Params変数は、content/post/記事.mdファイルのフロントマター（---で囲まれている記述のこと）を参照します。


```MD:Blog/content/post/20210117-1.md(記事ファイル)
(↓フロントマター)
---
title:       "sakaP🌈さかぴのブログ: 記事 1 のタイトルテキスト"
subtitle:    "subtitle: 記事 1 のサブタイトル"
description: "article_discription: 記事1の概要説明文"
date:        2021-01-17T14:13:08+09:00
author:      "KEISUKE SAKAGAMI"
image:       "img/sozai.jpg"
eyecatch:    "img/sozai.jpg"

# table of content
toc:         true
#true=未完成記事扱い  hugo -Dで表示
draft:       false
tags:        ["プログラミング", "ライフハック", "カフェ", "生活コスト", "what?", "経済マネー", "健康", "思考感情メモ", "書評", "スピリチュアル", "夢日記", "エンジェルナンバー", "趣味", "サーフィン", "その他"]
categories:  ["PROGRAMMING", "LIFE_HACK", "CAFE", "LIVING_COST", "WHAT?", "ECONOMY", "HEALTH", "THOUGHTS_EMOTIONS_", "BOOK_REVIEW", "SPIRITUAL", "DREM_ANGEL_NUMBER", "HOBBY", "NON_GENRE"]
---
(↑フロントマター)

# はじめに
# 結論
# ~~~について
# ~~~~問題点
# ~~~~解決策
# まとめ
```

# public/index.html　をチェックする
Blog/layouts/partials/head.htmlに記述をして、hugoコマンドでビルドすると
本番で使用されるBlog/public/index.htmlにコードがレンダリングされる

```Go:ターミナル
//ビルド実行
% hugo
```

```HTML:Blog/public/index.html
<!DOCTYPE html>
<html lang="ja-jp">
<head>
　　 <meta name="generator" content="Hugo 0.79.1" />
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <meta name="twitter:card"            content="summary_large_image">
    <meta property="og:type"             content="article">
    <meta property="og:title"            content="" />   <!-- 記事.mdを参照 -->
    <meta property="og:description"      content="" />　　<!-- 記事.mdを参照 -->
    <meta property="og:image"            content="https://relaxed-swirles-2507d0.netlify.app/img/coffee.jpg" />
    <meta property="twitter:site"        content="sakaP🌈さかぴ 如実知見">
    <meta property="twitter:site : id"   content="@slope_top_kei">
    <meta property="twitter:creator"     content="KEISUKE_SAKAGAMI">
    <meta property="twitter:creator:id"  content="@slope_top_ke">
```

```Go:ターミナル
//変更の確認
% git status
//変更のステージング
% git add .
//ローカルリポジトリにコミット
% git commit -m "任意のコミットメッセージ"
//リモートリポジトリにプッシュ
% git push origin (リモートブランチ: 例master 例HEAD)　
```


# Netfilyブラウザでデプロイ実行します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617331/9213b0f1-b9e5-d7b2-8f14-b28ebd5707ac.png)



# Card validator でチェックする

https://cards-dev.twitter.com/validator
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617331/794841f9-4aa4-e0fb-d6ff-cb6352007653.png)

フォームに記事ページのURLを貼り付け、Preview cardボタンを押します。

The card for your website will look a little something like this!
あなたのウェブサイトのカードはこのように少し見えるでしょう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617331/ac723dd7-9202-b4ec-a1eb-03ee53a12c5e.png)
Twitterカードをクリックすると、指定した記事URLにアクセスしました！



# 参考になった記事
twitterドキュメント
https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup

Facebook・TwitterのOGP設定方法まとめ
https://ferret-plus.com/610

Facebookインサイト設定の落とし穴、app_id, admins の違いとは
https://blog.sixapart.jp/2012-04/fb-app-id.html

【2020年版】Twitterカードとは？使い方と設定方法まとめ
https://saruwakakun.com/html-css/reference/twitter-card

Twitterカードの使い方と設定方法
https://www.howtonote.jp/twitter/helpful/index5.html

Hugo のテンプレート 基本
http://takunagai.github.io/post/hugo/template/

ツイートにページ情報を表示する「Twitterカード（Twitter Cards）」を設定してみた
https://www.granfairs.com/blog/staff/setting-twitter-cards