inch-blog

Welcome to Inch-blog ! Home is a place where you can read mainly technical articles. LIFE is mainly about my personal life.

easy-notion-blog で favicon を設定する方法

Favicon となる元画像作成

canva などで作成します.

画像は 260 x 260 px 以上が最適です.

また canva では画像の透過の処理は有料のため透過処理をしたい場合は

https://www.bannerkoubou.com/

上記のような外部サービスを利用してください.

Favicon Generator で調整

作成した Favicon の元画像を Favicon に適した画像に変換します.

https://realfavicongenerator.net/

上記のサイトで変換していきます.

  1. Select your Favicon image をクリックし画像をアップロード
  2. サイトに表示されたときや iPhone に表示された場合の見た目の調整など修正します.
  3. 調整が終わったら画面の一番下にある Generate your Favicons and HTML code をクリックします.
  4. Install your favicon のページが表示されます
  5. Download your package をクリックして zip ファイルをダウンロードしてください.
  6. そして次で使用するので画面にある以下のようなコードをメモしておいてください.
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#00aba9">
<meta name="theme-color" content="#ffffff">

※私の上のコードの場合一部カラーを編集しているので使用できないと思われます.

easy-notion-blog を編集

続いて easy-notion-blog を編集します.

画像ファイルを public にコピー

先ほどダウンロードして zip ファイルを解凍すると中に画像ファイル等が入っています.

それを easy-notion-blog の

easy-notion-blog-main/public

にそのままコピーしてください.

ディレクトリ構成は

public
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── apple-touch-icon.png
├── browserconfig.xml
├── default.png
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon.ico
├── logo-bk_white.jpg
├── logo.png
├── mstile-150x150.png
├── safari-pinned-tab.svg
└── site.webmanifest

のようになります.

document-head.tsx の編集

次に

easy-notion-blog-main/components/document-head.tsx

を編集します.

先ほどコピーしたコードを貼り付けてください.

ただしコードの末尾を

<....>

から

<.../>

に変更して貼り付けしてください.

つまり

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#00aba9">
<meta name="theme-color" content="#ffffff"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
<meta name="msapplication-TileColor" content="#00aba9" />
<meta name="theme-color" content="#ffffff" />

全体像は以下のようになります.

import {
  NEXT_PUBLIC_SITE_DESCRIPTION, NEXT_PUBLIC_SITE_TITLE, NEXT_PUBLIC_URL
} from '../app/server-constants'

const DocumentHead = ({ title = '', description = '', path = '', urlOgImage = '' }) => {
  const elements = path.split('/')
  const isSlugPath = elements[0] === '' && elements[1] === 'blog' && elements.length === 3
  const isRootPath = path === '' || path === '/'

  return (
    <>
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <meta name="robots" content="max-image-preview:large" />
      <meta charSet="utf-8" />
      <title>{title ? `${title} - ${NEXT_PUBLIC_SITE_TITLE}` : NEXT_PUBLIC_SITE_TITLE}</title>
	
			...( 中略 )...

      <meta name="twitter:title" content={title ? `${title} - ${NEXT_PUBLIC_SITE_TITLE}` : NEXT_PUBLIC_SITE_TITLE} />
      <meta
        name="twitter:description"
        content={description ? description : NEXT_PUBLIC_SITE_DESCRIPTION}
      />

			...( ここから添付 )...

      <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
      <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
      <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
      <link rel="manifest" href="/site.webmanifest" />
      <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
      <meta name="msapplication-TileColor" content="#00aba9" />
      <meta name="theme-color" content="#ffffff" />

			...( ここまで添付 )...

    </>
  )
}

export default DocumentHead

以上参考になれば嬉しいです.