GASでHTML③ Font Awesomeを使ってみた （ファビコン設定・ページタイトル設定）



# 前回の記事
前回の記事に続き、GASのHTMLを試しています。

GASで動的HTML②　HTML内でGoogleドライブ内の画像ファイルをダイナミックに表示させる。
https://qiita.com/jooji/items/b89ce338af359742e813

# 本記事でやること
Font Awesomeを使ってファビコンの設定をします。ついでにページタイトルも。

1. Font Awesomeの使い方
2. GASで作成したHTMLへファビコンの設定する方法
3. GASで作成したHTMLへタイトルを設定する方法



# ①Font Awesome

## Font Awesome とは
Web用のSVG形式のアイコンを提供するサービスです。無料利用は利用できるアイコンが制限されていますが、それでも種類豊富なアイコンを利用できます。
アイコンはダウンロードすることもできます。

## Font Awesome利用登録
サイトへアクセスします。
https://fontawesome.com/

アカウントを持っていない場合は、「Start for Free」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/3f31a477-33d3-14c3-4962-7583436e1a6a.png)

登録に利用するメールアドレスを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/a76c4b6a-7c59-3977-0b7a-b96576b11b00.png)

メールを確認しましょう。下のようなメールが来ていますのでリンクボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/5c8d3aaf-d93d-3f84-b5be-837987fab4ac.png)

ログインパスワードを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/ed37935e-bdeb-5e2c-27b0-cc4ef4ddaea9.png)

登録に必要な情報を入力します。初めて利用する場合は、3番と4番の質問は未回答で大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/8a8bf3f2-cc52-bc56-3c7d-81a868ca0ecb.png)

図の赤枠部分にScriptタグのコードが発行されます。
このタグをHTMLに埋め込むことでFont Awesomeが利用できるようになります。コピーしておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/c932c989-465b-6968-12b2-abb0d4af2cd9.png)




## Font Awesomeの使い方

さて、好きなアイコンを探してみます。トップページから「icon」をクリックしアイコン一覧ページを表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/317b7a12-9eef-0f56-296b-fbe174e6ef04.png)

このアイコンを使うことにしました。「start using this icon」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/c3153a8f-d5f8-a6fb-fb86-6390a5c7beb4.png)

アイコンのタグが表示されますのでコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/d8032b55-32e9-b4ea-ee81-8064875e7a00.png)

```HTML

  <head>
    <base target="_top">

    <!-- ①headタグに利用するためのタグを挿入-->
    <script src="https://kit.fontawesome.com/6af5a95155.js" crossorigin="anonymous"></script>

  </head>
  
  <body>
    <!-- ②アイコンを表示したい箇所にアイコンのタグを挿入 fa-5xはサイズを指定している。-->
    <i class="fas fa-ambulance fa-5x"></i>

```
サイズを変更したりCSSで色を変えたりも出来ます。詳細は「参考」のサイトなどで確認してください。


アイコンを表示することが出来ました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/6f09dd63-9015-15ce-6fb1-48de09b91394.png)



# ②Font Awesomeのアイコンをファビコンとして設定する。

一般的なHTMLでは、ファビコンの設定の記述はHTMLのheadタグの中に`<link rel=”icon” href=“/image/favicon.ico”>`のような形で記述しますが、GASではこの方法は使えません。

GASコードのメソッドを使って設定します。

手順は下記です。

1. ファビコン用画像をGoogleDriveに保存する。
2. ファビコン用画像のリンクの共有をしてファイルidをコピーする。
3. GASの.setFaviconUrlメソッドにファビコン画像のURLを渡す。

勿論、Googleドライブ以外のファイルでも、Web上のアクセス可能な場所に保存されているファイルであれば問題ありません。

## Font Awesomeの画像DL方法
アイコンページの下図のアイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/dcd6bc26-d257-232f-17cd-ca8dc062abcf.png)

ダウンロードしたらGoogleドライブの任意の場所に保存し、ファイルの共有を行い、ファイルIDをコピーしておきます。


## GASコード
```javascript

function doGet() {
  var html = HtmlService.createTemplateFromFile("index").evaluate()
  html.setFaviconUrl("https://drive.google.com/uc?id=[ファイルID]&.ico");
  return html;
}
```
リンクの共有で取得したURLはそのまま使うことが出来ません。上記のようなURLの形式で渡す必要がありますので注意が必要です。


## 拡張子を.svgとするとエラーになる。
Font Awesomeからダウンロードする画像は「.svg」という拡張子の形式の画像ファイルになります。これをこのまま`html.setFaviconUrl("https://drive.google.com/uc?id=[ファイルID]&.svg");`のように.svgとして記述すると下図のエラーが出ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/74e75027-b54a-9465-16d9-d8850614aa17.png)

「ファビコンの画像形式に対応していないよ。」とのことです。これは`.ico`か`.png`に書き換えることで設定可能となりました。（画像ファイルそのものをsvgからpngに変換する必要はありません）


# ③ページタイトルを設定する。
ページタイトルもtitleタグではなく、GASメソッドで設定します。

```javascript

function doGet() {
  var html = HtmlService.createTemplateFromFile("index").evaluate()
  html.setFaviconUrl("https://drive.google.com/uc?id=[ファイルID]&.ico");
  html.setTitle("jojiのテストサイト");
  return html;
}
```


# ファビコンとページタイトルの設定結果
図のように、ファビコンとページタイトルがブラウザのタブにて設定が出来ていることが確認出来ました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342467/2432d05c-497e-688a-17a0-e04375278b3c.png)



# GASでHTML
次回は表示したアイコンにCSSアニメーションを適用したいと思います。

GASで動的HTML① HTMLの中のJavascriptを実行して動的HTMLを作成する。(Dog API使う)
https://qiita.com/jooji/items/6227821eb5f9b48e2e87

GASで動的HTML②　HTML内でGoogleドライブ内の画像ファイルをダイナミックに表示させる。
https://qiita.com/jooji/items/b89ce338af359742e813




## 参考

（いつも隣にITのお仕事）
GASで作成したWebページにファビコンを設定する方法
https://tonari-it.com/gas-web-set-favicon/

（サルワカ）
【保存版】Font Awesomeの使い方：Webアイコンフォントを使おう
https://saruwakakun.com/html-css/basic/font-awesome#san2