GitHub Profileをイけてる風にカスタマイズして全部乗せ自己紹介ページにしてみる

今更ながらGitHubのProfileをカスタマイズするのにハマりました。
SNSのリンクを集約したり、GitHubの活動歴を可視化してみたり、
とりあえずProfileを見てもらえれば自分の活動全てにアクセスできるように自己紹介ページを作ってみました。
その過程でバッジやらアイコンやらを色々と採用してみたのでまとめて紹介したいと思います。


# 作ったもの
最初に今の私のProfileを載せておきます。
（画像と最新のページでは内容が変わっている可能性があります）
https://github.com/n-yokomachi

![Screenshot at Jan 02 18-51-57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/7d4c497a-6b93-f920-edc2-d102832d8f7f.png)



### 載せているもの
・カウンター系のバッジ
・LAPRASのカード
・SNSなどのリンクバッジ
・GitHubの活動トロフィー
・GitHubの活動グラフ
・スキルアイコン

# GitHub Profileページの作り方
まず初めにGitHub Profileのカスタマイズページの作り方ですが、
自分のユーザーネームと同じ名前のリポジトリを作成し、README.mdを作成することでそれがProfileページに表示されるようになります。
詳しくはこちらを参照ください。
[Managing your profile README - GitHub Docs](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme)

# カウンター系のバッジ
ページの最上部にはProfileの閲覧数やQiitaの投稿数などをバッジ形式で表示しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/b95fd31b-d9fc-b2ee-bac6-5708393e7229.png)


### GitHub Profileの閲覧数
GitHub Profileの閲覧数表示には[antonkomarev/github-profile-views-counter](https://github.com/antonkomarev/github-profile-views-counter)を使っています。
以下のタグを埋め込むだけで表示できます。
``` markdown
<img src="https://komarev.com/ghpvc/?username={username}" />
```

### Qiitaの投稿数、コントリビューション数
Qiitaの投稿数、コントリビューション数の表示には[Github Like Badge for Qiita by apiapi.app](https://qiita-badge.apiapi.app/)を使っています。
Qiitaのユーザー名を入力して生成されるバッジを貼り付けるだけです。
ただ自分の場合、上記のページで生成されるコードだとうまいこといかなかったので以下の形に変換して埋め込んでいます。
``` markdown
<img height="20" src="https://qiita-badge.apiapi.app/s/{username}/posts.svg" />
<img height="20" src="https://qiita-badge.apiapi.app/s/{username}/contributions.svg" />
```

# LAPRASのカード
[LAPRAS](https://lapras.com/)はSNSなどと連携させて自分のアウトプットをスコア化したり、そのスコアを元にリクルートを提供するサービスです。
このスコアをGithub Profileに表示するために[LAPRAS Card Readme](https://github.com/marketplace/actions/lapras-card-readme)を使っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/d59c6fc3-7180-d535-37be-c7e9b41febf6.png)

事前にREADME.mdに以下のコメントを埋め込み、
``` markdown
<!--START_SECTION:lapras-card-->
<!--END_SECTION:lapras-card-->
```
GitHub Actionsを設定することでLAPRASのデータを定期的に画像化して上記のコメント部分に埋め込むような仕組みとなっています。

なお、LAPRASのカードのイメージは以下のサイトでプレビューもできるようになっています。
[LAPRAS Card Generator](https://lapras-card-generator.vercel.app/?e=4.22&b=3.3&i=2.28&b1=%23767676&b2=%23e1e1e1&i1=%23888888&i2=%23cccccc&l=ja&u=)

# SNSなどのリンクバッジ
GitHubを自分のあらゆる活動のHubとするため、いろんなSNSのリンクを貼り付けています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/c32dc90d-e266-d119-5e25-f8597ec13dcc.png)
各SNSのリンクには[Shields.io](https://shields.io/)で生成したバッジ画像にリンクを張っています。
GitHubの場合は👇こんな感じです
```markdown
<a href="https://github.com/{username}" target="_blank"><img alt="Github" src="https://img.shields.io/badge/GitHub-%2312100E.svg?&style=for-the-badge&logo=Github&logoColor=white" /></a>
```

# GitHubの活動トロフィー
GitHub上での活動をランクづけしてトロフィーとして表示してくれるツール[ryo-ma/github-profile-trophy](https://github.com/ryo-ma/github-profile-trophy?tab=readme-ov-file#apply-theme)を使用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/f1ea948a-f84b-b999-75af-daabd96e985e.png)

以下のコードを埋め込んでいます。
```markdown
<img alt="Trophy"src="https://github-profile-trophy.vercel.app/?username={username}&rank=?,-?&no-frame=true" />
```
見た目やフィルターを変えられるので、下のグラフなどと統一感が出るようにしてみました。


# GitHubの活動グラフ
GitHub上での活動をグラフ化して表示してくれるツール[GitHub-Profile-Summary-Cards](https://github.com/marketplace/actions/github-profile-summary-cards)を使用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/20c4c459-0462-9d5f-6b95-1ea4513a6462.png)

このツールは予め払い出したGitHubのトークンでGitHub Actionsでデータ収集、画像の生成を行って、その画像を貼り付ける方式をとっているため、Privateリポジトリでの情報も収集できるようです。
```markdown
<img alt="details" width="700px" src="https://raw.githubusercontent.com/{username}/{username}/main/profile-summary-card-output/nord_bright/0-profile-details.svg" />
<img alt="repos-per-language" width="348px" src="https://raw.githubusercontent.com/{username}/{username}/main/profile-summary-card-output/nord_bright/1-repos-per-language.svg" />
<img alt="most-commit-language" width="348px" src="https://raw.githubusercontent.com/{username}/{username}/main/profile-summary-card-output/nord_bright/2-most-commit-language.svg" />
```
より簡易的に導入 or Publicリポジトリの情報だけで十分な場合、以下のツールもよく使われている印象です。
[anuraghazra/github-readme-stats](https://github.com/anuraghazra/github-readme-stats)


# スキルアイコン
最後にスキル系のアイコンですが、[Skill Icons](https://skillicons.dev/)を使って画像を貼り付けています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/942028b6-0a80-6e81-e7dd-c83bb3614961.png)

```markdown
<img alt="language" src="https://skillicons.dev/icons?theme=dark&perline=10&i=html,css,js,ts,python,cs,php,graphql" />
```

# おわり
SNSのまとめといえばPOTOFUやlit.linkなどのサービスを使うのもありかと思いますが、
ソフトウェアエンジニアならやっぱりGitHubでしょってことで作ってみました。
SNSのアカウントが増えるたび自己紹介が分散してしまうのが気になっていましたが、
今回作成したGitHub ProfileのURLを貼るだけで自己紹介が済むようになりました。