shields.io를 통해 원하는 모든 것을 자유롭게 배지 표시

4631 단어 OSSGitHubElm

배지 on README.md



OSS를 GitHub 등으로 공개하기 위해서는 다양한 정보를 배지로 README.md에 붙여 두는 것이 자주 있다고 생각합니다.

클라우드 서비스를 활용하여 README에 배지를 페타 페타 붙이기 - Qiita

(이미지 인용) 나도 배지는 붙이고 싶은 파입니다. 샤레 테스트, 빌드 결과를 표시하는 것이 아마도 가장 중요한 목적이며 (필요한 출처), 필연적으로 : 테스트의 존재, (테스트를 정비, 유지하려고 하는 마음,) 자동 테스트 and/or 빌드 환경의 존재 등을 전제로 한다 README.md를 깔끔하게 정돈하는 자세를 보여줄 수 있다 화려하고 샬레 솔직히 목적 의식에 대해서는 굳이 그다지 깊게 생각하지 않는 것이 좋다. 우선 붙여 가자. 동적 정보를 배지로 표시 master의 테스트 결과나 code climate등은, 그 정보를 잡고 있는 web 서비스 자체가 SVG등의 화상을 동적으로 생성하는 API를 가지고 있는 것이 많고, 그 URL을 화상의 소스 URL로서 직접 지정하는 것 에서 쉽게 배지로 볼 수 있습니다. 또한 사용자 지정 정적 정보를 배지로 표시하는 것도, 시에 lds. 이오 을 사용하면 쉽게 할 수 있습니다.
https://img.shields.io/badge/<SUBJECT>-<STATUS>-<COLOR>.svg

이러한 형식의 URL을 준비하기만 하면 됩니다.
https://img.shields.io/badge/sample-good-green.svg

이렇게 쓰면,



이렇게 됩니다. 일본어도 갈 수 있는 것 같습니다.

그렇다면 웹 서비스와 관련된 것도 아니지만 (shields.io에도 배지가 제공되지 않음), 정적이 아니며 어딘가에 저장되어 동적으로 변경할 수있는 정보 을 바탕으로 배지를 표시하려면 어떻게 해야 합니까?

사실 이것도 shields.io에서 할 수 있습니다. 조건은
  • 원본 정보가 JSON으로 가져 와서
  • 인증이 필요하지 않습니다.

  • 예를 들어 Elm 의 패키지는 h tp : // Pac 게이지. 에 lm-ㅁ g. 오 rg 에 집계되어 있지만 shields.io 에는 아직 elm-package version 배지가 제공되지 않습니다. RubyGems나 npm과 같이 그중 대응하는 것을 기다려도 좋고, 없는 동안은 필기로 써 둔다는 손도 있습니다만, 거기는 역시 자동 생성시키자.

    shields.io에는 dynamic badge라는 기능이 있습니다. 아래와 같이 URL을 구성하여 이미지 소스에 지정하기만 하면 됩니다.
    /badge/dynamic/<TYPE>.svg?uri=<URI>&label=<LABEL>&query=<$.DATA.SUBDATA>&colorB=<COLOR>&prefix=<PREFIX>&suffix=<SUFFIX>
    


    슬롯
    value

    TYPE현재 json 만의 패턴
    URI정보 취득원의 URL. URL encode합시다. 인증이 필요없고 JSON을 반환하면 괜찮습니다.
    LABEL배지의 왼쪽 절반에 표시할 라벨
    $.DATA.SUBDATA가져온 JSON의 필드 값을 배지의 오른쪽 절반에 표시할 것인가? JSONPath 쿼리로 지정
    COLOR배지 오른쪽 절반의 Hex color
    PREFIX쿼리에서 얻은 문자열에 붙는 접두사
    SUFFIX마찬가지로 접미사


    Elm package의 최신 버전은 GitHub 저장소의 master에 있는 elm-package.json 라는 파일의 version 필드 값을 양수로 설정하면 됩니다. raw.githubusercontent.com에서 가져 왔습니다.
  • (GitHub에는 push하고 있지만.
  • (덧붙여서, Elm 0.19 이후는 elm-package publish가 됩니다)

  • 조합하여
    https://img.shields.io/badge/dynamic/json.svg?label=elm-package&colorB=5f9ea0&query=$.version&uri=https%3A%2F%2Fraw.githubusercontent.com%2Fymtszw%2Felm-xml-decode%2Fmaster%2Felm-package.json&prefix=v
    

    이 URL을 통해



    이렇게 생성할 수 있었습니다.



    글을 쓰고 있습니다만, badge는 표시처 서비스(여기에서는 GitHub, 거기에 Qiita)의 이미지 cache와의 합쳐서, 표시되지 않는 것이 가끔 있습니다. 1
    거기에 와서 원래 정보까지 외부 자원에 의존하는 dynamic badge가 되면 더 실패할 확률은 올라갑니다.
    shields.io의 서버가 응답하지 않는 경우도 있습니다 (rate limit인지 과부하인지는 불명).

    실은 이 기사의 예도 타이밍에 의해 표시되지 않는 케이스가 상당히 있었으므로, 몰래 PNG에 도망치고 있습니다! 미안해.
    static badge가 다소 낫다고 생각하기 때문에, 버전 번호 표시 정도라면 static으로 해 version up 때마다 재작성이 무난할지도.

    적절하게 구분하면서, 뭐든지 배지 표시해 샤레오츠로 해 갑시다.



    shields.io 측에 elm.json 등의 옵션도 있으므로, 어느 정도 컨트롤 할 수 있을 것 같습니다.

    좋은 웹페이지 즐겨찾기