
GitHub Readme 꾸미기 (Shields.io + SVG 로고)
Shields.io는 GitHub Readme에서 사용할 수 있는 여러 Badge를 제공해주는 서비스입니다.
GitHub Badge 만들기 (shields.io 사용법)를 참고하면 Shields.io의 기본적인 사용법을 배울 수 있습니다.
여기서 소개할 내용은 Shields.io에 로고를 넣는 기능입니다.
Shields.io의 이미지 URL에는 logo=logo_name
로 로고를 추가할 수 있습니다.

이때 logo_name
은 Simple Icons 사이트에 등록된 로고만 사용이 가능합니다.
하지만 Data URI를 이용해 Base64로 인코딩된 이미지를 전달하면, 임의의 이미지도 사용할 수 있습니다.
Practice
Simple Icons 사이트에 존재하지 않는 Tokio 로고를 예시로 사용하겠습니다.
먼저 로고를 Badge에 사용하기 위해선 로고 이미지를 SVG 파일로 구해야 합니다.
GitHub tokio-rs/website/tokio.svg
SVG 파일을 구했다면, Base64로 인코딩 했을 때의 길이를 줄이기 위해 이미지를 압축합니다.
SVG 파일의 압축은 SVGOMG를 이용하면 편하게 할 수 있습니다.
압축한 SVG 파일을 Base64로 인코딩할 차례입니다.
Base64 Encode and Decode에 SVG 파일 텍스트 붙여넣고 출력된 결과를 가져옵니다.
마지막으로 Data URI 형식으로 이미지를 삽입합니다.
https://img.shields.io/badge/tokio-black.svg?logo=data:image/svg+xml;base64,<base64_image>&style=for-the-badge
Markdown으로 이미지를 출력하면 마무리됩니다.

Error: URI Too Long
Data URI를 포함한 이미지 URL이 너무 길면, Error: URI Too Long
를 출력하며 이미지가 보여지지 않습니다.
이럴때는 is.am과 같은 URL 단축 서비스를 이용하면 정상적으로 출력됩니다.
