検索
ホームページウェブフロントエンドCSSチュートリアルレポにカスタムGitHubバッジを追加します

レポにカスタムGitHubバッジを追加します

オープンソースのリポジトリongithubを見るのに時間を費やした場合、それらのほとんどがreadmeファイルにバッジを使用していることに気付くでしょう。たとえば、公式のReactリポジトリなど、最新リリースバージョンや現在のビルドが渡されているかどうかなどの重要なダイナミックな情報を構成するgithubバッジがあります。

このようなバッジは、リポジトリに関する重要な情報を強調する良い方法を提供します。 next.jsがリポジトリで行うように、独自のカスタム資産をバッジとして使用することもできます。

しかし、Githubバッジの最も有用なことは、はるかに役立つことです。 GitHubのバッジは、readmeにハードコード値を作成する代わりに、リモートサーバーから自動的に変更をピックアップできます。

独自のプロジェクトのREADMEファイルに動的なGitHubバッジを追加する方法について説明しましょう。まず、badgen.netというオンラインジェネレーターを使用して、基本的なバッジを作成します。次に、ナプキンを介して自分のサーバーレス機能に接続することにより、バッジを動的にします。最後に、独自のカスタムSVGファイルを使用して、さらに一歩進めます。

まず、バッジはどのように機能しますか?

Githubでいくつかのバッジの構築を開始する前に、それらがどのように実装されているかをすぐに説明しましょう。実際には非常にシンプルです。バッジは単なる画像です。 readmeファイルはマークダウンで記述されており、マークダウンは次のような画像をサポートしています。

 !\ [alt text \](画像へのパスまたはurl)

画像にURLを含めることができるという事実は、マークダウンページがページがレンダリングされたときにサーバーから画像データを要求することを意味します。したがって、画像があるサーバーを制御すると、必要なロジックを使用して送信される画像を変更できます。

ありがたいことに、「サーバーのセットアップ」パーツ全体を使用せずに独自のサーバーロジックを展開するためのいくつかのオプションがあります。基本的なユースケースの場合、事前定義されたテンプレートを使用してbadgen.netを使用してGitHubバッジ画像を作成できます。繰り返しになりますが、Napkinはブラウザでサーバーレス機能をすばやくコーディングし、GitHubバッジが通信できるエンドポイントとして展開します。

バッジェンでバッジを作る

最もシンプルなバッジソリューション:badgen.net経由の静的バッジから始めましょう。 Badgen APIは、URLパターンを使用して、その場でテンプレートバッジを作成します。 URLパターンは次のとおりです。

 https://badgen.net/badge/:subject/:status/:color?icon=github

badgen.netには、色、アイコンなどのオプションの完全なリストがあります。この例では、これらの値を使用しましょう。

  • :件名:こんにちは
  • :ステータス::世界
  • :色::赤
  • :アイコン:: Twitter

私たちの最後のURLは次のように見えます:

 https://badgen.net/badge/hello/world/red?con=twitter
画像を表示します

readmeファイルにgithubバッジを追加します

次に、このバッジをGitHubリポジトリのReadMeファイルに埋め込む必要があります。以前に見た構文を使用して、マークダウンでそれを行うことができます。

 !\ [My Badge \](https://badgen.net/badge/hello/world/red?con=twitter)

Badgenはさまざまなオプションを提供しているので、彼らのサイトをチェックして遊ぶことをお勧めします!たとえば、テンプレートの1つを使用すると、特定のGitHubリポジトリが主演した回数を表示できます。次に、次のような星のgithubバッジです。

 https://badgen.net/github/stars/vercel/next.js
画像を表示します

かなりクール!しかし、バッジがネイティブにサポートしていない情報をバッジに表示したい場合はどうでしょうか。幸いなことに、Badgenには、独自のHTTPSエンドポイントを使用してデータを取得するためのURLテンプレートがあります。

 https://badgen.net/https/url/to/your/endpoint

たとえば、バッジにUSDの現在の価格を表示してほしいとしましょう。必要なのは、このデータをこのようにJSONとして返すカスタムエンドポイントだけです。

 {
  「色」:「青」、
  「ステータス」:「$ 39,333.7」、
  「件名」:「ビットコイン価格USD」
}

エンドポイントがhttps://some-endpoint.example.com/bitcoinで利用できると仮定すると、次のURLスキームを使用してデータをBadgenに渡すことができます。

 https://badgen.net/https/some-endpoint.example.com/bitcoin

今はさらに涼しい!しかし、GitHubバッジのデータを提供するエンドポイントを実際に作成する必要があります。 ?それは私たちを…

バッジェンナプキン

独自のHTTPSエンドポイントを取得する方法はたくさんあります。 DigitalOceanまたはAWS EC2を使用してサーバーをスピンアップすることも、Google Cloud FunctionsやAWS Lambdaなどのサーバーレスオプションを使用することもできます。ただし、それらはすべて、私たちの単純なユースケースに対して少し複雑で退屈になる可能性があります。そのため、Napkinのブラウザ内関数エディタに、インストールや構成なしでエンドポイントをコードして展開することを提案しています。

ナプキンのビットコインバッジの例にアクセスして、エンドポイントの例を確認してください。現在のビットコイン価格を取得し、編集者のJSONとして返すコードを確認できます。エディターからコードを自分で実行するか、エンドポイントを直接使用できます。

バッドゲンでエンドポイントを使用するには、上から同じURLスキームを使用して作業します。今回はナプキンエンドポイントでのみ:

 https://badgen.net/https/napkin-examples.npkn.net/bitcoin-badge
画像を表示します

Githubバッジをカスタマイズする方法

次に、この関数をフォークして、独自のカスタムコードを追加できるようにしましょう。トップライトの「フォーク」ボタンをクリックして、そうすることを行います。まだサインインしていない場合は、ナプキンでアカウントを作成するように求められます。

関数を正常に分岐したら、必要なNPMモジュールを使用して、必要なコードを追加できます。 Moment.js NPMパッケージを追加し、エンドポイント応答を更新して、ビットコインの価格が最後にGitHubバッジで直接更新されたことを示します。

 「ノードフェッチ」からフェッチをインポートする
「瞬間」からモーメントをインポートする

const bitcoinprice = async()=> {
  const res = await fetch( "<https:>")
  const json = await res.json()
  const lastprice = json.usd.last ""

  const [ints、decimals] = lastprice.split( "。")

  return ints.slice(0、-3) "、" intslice(-3) "。"。デシマル
}

デフォルトのasync(req、res)=> {エクスポート
  const btc = await bitcoinprice()

  Res.Json({
    アイコン:「ビットコイン」、
    件名: `Bitcoin Price USD($ {moment()。format( 'h:mma')})`、
    色:「青」、
    ステータス: `\\ $$ {btc}`
  })
}</https:>

バッジは、GitHubでReadMeファイルを次にロードするときに更新するのに時間がかかることに気付くかもしれません。これは、GitHubがプロキシメカニズムを使用してバッジ画像を提供するためです。

GitHubは、この方法でバッジ画像を提供して、高いリクエストボリュームやJavaScriptコードインジェクションなど、乱用を防ぎます。 Githubのプロキシを制御することはできませんが、幸いなことに、あまりにも積極的にキャッシュすることはありません(または、バッジの目的を打ち負かすことになります)。私の経験では、TTLは約5〜10分です。

OK、最終的なボスの時間。

ナプキンを備えたカスタムSVGバッジ

最後のトリックについては、Napkinを使用して完全に新しいSVGを送り返しましょう。Next.JSリポジトリで見たようなカスタム画像を使用できます。

GitHubバッジの一般的なユースケースは、Webサイトの現在のステータスを示しています。それをしましょう。バッジがサポートする2つの州は次のとおりです。

BadgenはカスタムSVGをサポートしていないため、代わりに、バッジに直接ナプキンエンドポイントに話しかけます。サイトと呼ばれるこのための新しいナプキン関数を作成しましょう。

この関数のコードは、example.comにリクエストを行います。要求ステータスが200の場合、SVGファイルとしてグリーンバッジを返します。それ以外の場合は、赤いバッジを返します。関数を確認できますが、参照のためにここにコードも含めます。

 「ノードフェッチ」からフェッチをインポートする

const site_url = "<https:>"

// <https:>の完全なsvgs
const customupbadge = ''
const customdownbadge = ''

const IssiteUp = async()=> {
  const res = await fetch(site_url)
  Res.okを返します
}

デフォルトのasync(req、res)=> {エクスポート
  const forcefail = req.path?.endswith( '/400')

  const healthing = await siteup()
  res.set( 'content-type'、 'image/svg xml')
  if(Healthy &&!forceFail){
    res.send(buffer.from(customupbadge).toString( 'base64')))
  } それ以外 {
    res.send(buffer.from(customdownbadge).toString( 'base64')))
  }
}</https:></https:>

Example.comサイトがダウンするオッズはかなり低いため、そのシナリオをシミュレートするためにForceFailケースを追加しました。これで、ナプキンエンドポイントURLの後にA /400を追加して試してみることができます。

 !\ [status up \](https://napkin-examples.npkn.net/site-status-badge/)
!\ [ステータスダウン\](https://napkin-examples.npkn.net/site-status-badge/400)
ステータスアップバッジの表示ステータスダウンバッジを表示します

非常に素晴らしい ?

そして、私たちはそれを持っています! GitHubバッジトレーニングは完了です。しかし、旅は終わっていません。このようなバッジが非常に役立つ100万の異なることがあります。実験を楽しんで、そのreadmeの輝きを作りましょう! ✨

以上がレポにカスタムGitHubバッジを追加しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
CSSインクルージョン:プロジェクトに適した方法を選択しますCSSインクルージョン:プロジェクトに適した方法を選択しますMay 16, 2025 am 12:02 AM

bestmethod forincludingcsssdependsonprojectsized complexity:1)forlargerprojects、useexternalcssssssssssssssavesainabyandperformance.2)

これは発生することは想定されていません。不可能をトラブルシューティングしますこれは発生することは想定されていません。不可能をトラブルシューティングしますMay 15, 2025 am 10:32 AM

あなたが考えたことのない他の何かであることが判明したそれらの不可能な問題の1つをトラブルシューティングすることがどのように見えるか。

@KeyFrames対CSSトランジション:違いは何ですか?@KeyFrames対CSSトランジション:違いは何ですか?May 14, 2025 am 12:01 AM

@keyframesandcsstransitionsdifferincomplexity:@keyframesallowsfordeTailedAnimationのシーケンス、whilecsstransitionshandlesimplestatechanges.usecsstransitionsは、ButtonColorChanges、および@keyframesforintricateanimationslikerotatingingspinnnersを使用します。

静的サイトコンテンツ管理にページCMSを使用します静的サイトコンテンツ管理にページCMSを使用しますMay 13, 2025 am 09:24 AM

私は知っています、私は知っています:たくさんのコンテンツ管理システムオプションが利用可能であり、私はいくつかテストしましたが、実際にはY&#039;知っているものはありませんでしたか?奇妙な価格設定モデル、困難なカスタマイズ、一部は全体になることさえあります&

HTMLのCSSファイルをリンクするための究極のガイドHTMLのCSSファイルをリンクするための究極のガイドMay 13, 2025 am 12:02 AM

CSSファイルをHTMLにリンクすることは、HTMLの一部で要素を使用することで実現できます。 1)タグを使用して、ローカルCSSファイルをリンクします。 2)複数のタグを追加することにより、複数のCSSファイルを実装できます。 3)外部CSSファイルは、そのような絶対URLリンクを使用します。 4)ファイルパスとCSSファイルの読み込み順序の正しい使用を確認し、パフォーマンスを最適化すると、CSSプリプロセッサを使用してファイルをマージできます。

CSS Flexbox vsグリッド:包括的なレビューCSS Flexbox vsグリッド:包括的なレビューMay 12, 2025 am 12:01 AM

FlexBoxまたはグリッドの選択は、レイアウト要件によって異なります。1)FlexBoxは、ナビゲーションバーなどの1次元レイアウトに適しています。 2)グリッドは、雑誌のレイアウトなどの2次元レイアウトに適しています。この2つは、レイアウト効果を改善するためにプロジェクトで使用できます。

CSSファイルを含める方法:メソッドとベストプラクティスCSSファイルを含める方法:メソッドとベストプラクティスMay 11, 2025 am 12:02 AM

CSSファイルを含める最良の方法は、タグを使用してHTMLパーツに外部CSSファイルを導入することです。 1.タグを使用して、外部CSSファイルを導入します。 2。小さな調整のために、インラインCSSを使用できますが、注意して使用する必要があります。 3.大規模プロジェクトでは、@Importを介して他のCSSファイルをインポートするために、SASS以下などのCSSプリプロセッサを使用できます。 4。パフォーマンスのために、CSSファイルをマージし、CDNを使用し、CSSNANOなどのツールを使用して圧縮する必要があります。

FlexBox対グリッド:両方を学ぶべきですか?FlexBox対グリッド:両方を学ぶべきですか?May 10, 2025 am 12:01 AM

はい、Youはrelearnbothlexboxandgrid.1)FlexBoxisidealforone-Dimensional、FlexiblleayoutslikenavigationMenus.2)Gridexcelsintwo-digsignssuchasmagazinelayouts.3)Bothenhanceslaysutibulivedibulisunivedivition、floctonsulururを

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。