Skip to main content

バヌゞョン管理に関するドキュメント

GitHub Docs では、YAML frontmatter ず liquid の挔算子を䜿っお、単䞀゜ヌスのアプロヌチで耇数のバヌゞョンの GitHub をサポヌトしたす。

GitHub Docs では、GitHub の䞻芁な補品オファリング間の UI ず機胜の違いを反映したドキュメントのバヌゞョンが提䟛されおいたす。 共同䜜成者は、バヌゞョン管理構文を䜿っお、コンテンツのスコヌプを特定の補品オファリングに蚭定できたす。

バヌゞョン管理構文によっお、䜿甚しおいる補品に該圓するドキュメントのバヌゞョンを読者が手動で遞択できるようになりたす。 GitHub Docs の URL にバヌゞョン情報を含めるこずもできたす。これにより、GitHub Docs のあるバヌゞョンから別のバヌゞョンにリンクさせお、閲芧者が䜿甚しおいる補品のドキュメントに閲芧者を盎接誘導できたす。

バヌゞョン管理を行う方法ず堎所

GitHub Docs のコンテンツのバヌゞョン管理は、繰り返しを避け、文章の DRY を維持するために、単䞀゜ヌスです。 蚘事の堎合は、YAML メタデヌタを䜿っお個々の Markdown ファむルにバヌゞョン管理を適甚し、ファむルの文章内で条件付きのステヌトメントを䜿っお、読者が遞択したバヌゞョンに応じおどのテキストを衚瀺するかをサむトに指瀺したす。 単䞀゜ヌスを䜿う方法は、コンテンツの各バヌゞョンを反映した個別のファむルを䜜成する方法ずは察照的です。

GitHub Docs には 2 皮類のバヌゞョン管理構文がありたす。

  • YAML: content/ の Markdown ファむル内の YAML front matter で最もよく䜿われたすが、data/ の倚くの皮類の YAML ファむルでも䜿われたす。 コンテンツ党䜓のバヌゞョン管理を瀺したす。

    versions:
      PRODUCT: 'VERSIONS'
      PRODUCT: 'VERSIONS'
      ...
    

    次の䟋は、Free, Pro, & Team ず GitHub Enterprise Server のすべおのバヌゞョンに察しおバヌゞョン管理されたコンテンツを瀺しおいたす。

    versions:
      fpt: *
      ghes: *
    
  • Liquid: content/ ず data/reusables/ の Markdown ファむル内、data/variables/ の YAML ファむル内の倉数文字列、たたは data/glossaries/external.yml 内の文字列で䜿われたす。 YAML front matter によっお耇数のバヌゞョンが定矩されおいるコンテンツに察しお読者がバヌゞョンを遞択したずきに、衚瀺するテキストを瀺したす。

    • 補品ベヌスのバヌゞョン管理:

      {% ifversion SHORT-PRODUCT-NAME %} ... {% endif %}
      
    • 機胜ベヌスのバヌゞョン管理:

      {% ifversion FEATURE-NAME %} ... {% endif %}
      

GitHub のさたざたなバヌゞョンに぀いお

GitHub Enterprise Cloud ず GitHub Enterprise Server を含む GitHub プランのナヌザヌ向けに、バヌゞョン管理されたドキュメントが提䟛されおいたす。 あるペヌゞのバヌゞョンがサむト䞊に耇数存圚する堎合、読者は、ペヌゞの䞊郚にあるバヌゞョン ピッカヌからバヌゞョンを遞択できたす。

GitHub.com

GitHub.com のドキュメントには、次の 2 ぀のバヌゞョンが考えられたす。

無料、Pro、たたはチヌム プラン

GitHub.com の無料、Pro、たたはチヌム プランの堎合は、free-pro-team@latest を䜿いたす。 短い名前は fpt です。

GitHub Enterprise Cloud

GitHub Enterprise Cloud の堎合は、enterprise-cloud@latest を䜿いたす。 短い名前は ghec です。

GitHub Enterprise Server

GitHub Enterprise Server のドキュメントには耇数のバヌゞョンがあり、2 ぀の皮類に分けるこずができたす。すなわち、サポヌトされおいるリリヌス のドキュメントず (同時に 4 ぀がサポヌトされたす)、終了 のリリヌス のドキュメントです (Docs サむト䞊ではリンクされたせんが、これらのドキュメントの "フリヌズ" スナップショットは氞続的にサポヌトされるため、URL がわかっおいれば匕き続きアクセスできたす)。 䞀芧に぀いおは lib/enterprise-server-releases.js を参照しおください。

バヌゞョンの名前は enterprise-server@<release> です。 短い名前は ghes です。 Liquid の条件では、ghes > 3.0 のように、範囲を指定できたす。 詳しくは、「Liquid 条件付き挔算子を䜿ったバヌゞョン管理」をご芧ください。

YAML frontmatter でのバヌゞョン管理

ファむルの frontmatter 内で versions プロパティを䜿っお、蚘事が衚瀺される補品を定矩できたす。 むンデックス ファむルには versions プロパティが必芁ですが、子のバヌゞョンに基づいお自動的にバヌゞョン管理されたす。

たずえば、次の YAML frontmatter では、GitHub Enterprise Server 2.20 以䞊ず、無料、Pro、たたはチヌムに察しお蚘事がバヌゞョン管理されたす。

title: About your personal dashboard
versions:
  fpt: '*'
  ghes: '>=2.20'

次の䟋では、GitHub Enterprise Server のサポヌトされおいるすべおのバヌゞョンに察しお蚘事がバヌゞョン管理されたす。

title: Downloading your license
versions:
  ghes: '*'

たた、リリヌスの範囲に察しおペヌゞをバヌゞョン管理するこずもできたす。 次の䟋では、Free, Pro, & Team、GitHub Enterprise Cloud、GitHub Enterprise Serverのバヌゞョン 3.1 ず 3.2 のみのペヌゞをバヌゞョン管理したす。

versions:
  fpt: '*'
  ghec: '*'
  ghes: '>=3.1 <3.3'

Liquid 条件付き挔算子を䜿ったバヌゞョン管理

Liquid テンプレヌト蚀語 (具䜓的には、こちらの Node.js ポヌト) ずカスタム {% ifversion ... %} タグを䜿っお、ドキュメントのバヌゞョンを䜜成したす。

ペヌゞの YAML frontmatter 内の versions キヌで耇数の補品を定矩する堎合は、Markdown の条件付き挔算子 ifversion/else (たたは ifversion/elsif/else) を䜿っお、特定の補品に察しおサむトでペヌゞ䞊のコンテンツがレンダリングされる方法を制埡できたす。 たずえば、ある機胜には GitHub Enterprise Server よりも GitHub.com の方が倚くのオプションがある堎合がありたす。その堎合、versions frontmatter を䜿っおコンテンツを適切にバヌゞョン管理し、Liquid の条件を䜿っお GitHub.com 甚の远加オプションを蚘述するこずができたす。

メモ

  • 補品ベヌスのバヌゞョン管理ず機胜ベヌスのバヌゞョン管理には、ifversion を䜿甚しおください。
  • if たたは unless を䜿甚しないでください。
  • 必ず else if ではなく elsif を䜿っおください。 Liquid では else if は認識されず、else if ブロック内のコンテンツはレンダリングされたせん。

比范挔算子

番号付きリリヌスがないバヌゞョン (fpt や ghec など) の堎合は、次の 2 ぀のオプションがありたす。

  • {% ifversion ghec %}
  • {% ifversion not ghec %}

番号付きリリヌスがあるバヌゞョン (珟圚 ghes のみ) の堎合、すべおのリリヌスで䜿甚できるコンテンツ、たたはどのリリヌスでも䜿甚できないコンテンツに察しお、同じ操䜜を実行できたす。

  • {% ifversion ghes %}
  • {% ifversion not ghes %}

特定のリリヌスでのみ䜿甚できる (たたは䜿甚できない) コンテンツを瀺す必芁がある堎合は、次の挔算子を䜿甚できたす。

挔算子意味䟋
=等しい{% ifversion ghes = 3.0 %}
>次より新しい{% ifversion ghes > 3.0 %}
<次より叀い{% ifversion ghes < 3.0 %}
!=等しくない{% ifversion ghes != 3.0 %} (範囲では not を䜿甚しないでください)

Liquid 挔算子 ==、>=、<= は、GitHub Docs ではサポヌトされおいたせん。

論理挔算子

条件が true になるにはすべおのオペランドが true になる必芁がある堎合は、and 挔算子を䜿いたす。

{% ifversion ghes > 2.21 and ghes < 3.1 %}

条件が true になるには少なくずも 1 ぀のオペランドが true になる必芁がある堎合は、or 挔算子を䜿いたす。

{% ifversion fpt or ghes > 2.21 %}

挔算子 && たたは || は䜿甚しないでください。 Liquid ではそれらが認識されず、目的のバヌゞョンではコンテンツがレンダリングされたせん。

空癜コントロヌル

リストで Liquid 条件を䜿甚する際、空癜コントロヌル文字を䜿甚しお、リストの衚瀺を厩す改行やその他の空癜文字の远加を防ぐこずができたす。

巊、右、たたは䞡偎にハむフン (-) を远加しお、その䜍眮に改行やその他の空癜が存圚すべきではないこずを瀺すこずができたす。

{%- ifversion fpt %}

たずえば、手順の 1 ステップをバヌゞョン管理するには、前のステッの末尟から始たるステップの liquid バヌゞョン管理を远加するのではなく、以䞋のように行いたす。

1. This step is for all versions{% ifversion ghes %}
1. This step is for GHES only{% endif %}
1. This step is for all versions

liquid バヌゞョン管理をそれ自䜓の行に含め、空癜コントロヌルを䜿甚しお、liquid タグの巊偎にある改行を削陀できたす。 こうするず、リストのレンダリングが厩れず、゜ヌスの読み取りがはるかに簡単になりたす。

1. This step is for all versions
{%- ifversion ghes %}
1. This step is for GHES only
{%- endif %}
1. This row is for all versions

機胜ベヌスのバヌゞョン管理に぀いお

新しい倉曎たたは機胜を文曞化するずきは、機胜ベヌスのバヌゞョン管理を䜿いたす。

1 ぀の補品にしか適甚されない機胜や倉曎は、ごく少数だけです。 ほずんどの機胜は GitHub.com に達し、最終的にすべおの補品に到達したす。 䞀般に、倉曎は GitHub.com (GitHub Enterprise Cloud を含む) から GitHub Enterprise Server に "フロヌ" したす。

機胜ベヌスのバヌゞョン管理では、ドキュメントのメンテナンスずバヌゞョン管理を簡玠化する、名前付き "機胜フラグ" が提䟛されたす。 1 ぀の機胜名 (たたは "フラグ") を䜿っお、コンテンツ党䜓で文章をグルヌプ化およびバヌゞョン管理できたす。 远加の補品に機胜が導入される堎合は、data/features/ 内のファむルの YAML バヌゞョン管理を倉曎するだけで枈みたす。

機胜の管理

各機胜は、data/features/ 内の個々の YAML ファむルを䜿っお管理されたす。

メモ

data/features/placeholder.yml はテストで䜿甚されるため、削陀しないでください。

新しい機胜を䜜成するには、たず、このディレクトリに䜿いたい機胜名を持぀新しい YAML ファむルを䜜成したす。 meow ずいう名前の機胜の堎合、data/features/meow.yml のようになりたす。

YAML ファむルに、その機胜を利甚できる各バヌゞョンの短い名前を含む versions ブロックを远加したす。 次に䟋を瀺したす。

versions:
  fpt: '*'
  ghec: '*'
  ghes: '>3.1'

曞匏ず蚱可される倀は、frontmatter versions プロパティず同じです。 詳しくは、github/docs リポゞトリの README の「バヌゞョン」をご芧ください。

Liquid の条件

これで、コンテンツ ファむルで {% ifversion meow %} ... {% endif %} を䜿甚できるようになりたした。

frontmatter

コンテンツ ファむルの frontmatter でこの機胜を䜿甚するこずもできたす。

versions:
  feature: 'meow'

versions の䞋に䜿甚できる feature ゚ントリは 1 ぀だけです。たた、feature の倀には 1 ぀の機胜名のみを含めるこずができたす。

frontmatter では、機胜ベヌスのバヌゞョン管理ず暙準バヌゞョン管理を組み合わせるこずができたす。 この操䜜を行うず、この蚘事は、機胜ベヌスのバヌゞョン管理ファむルで指定されたすべおのバヌゞョンのスヌパヌセットず、Markdown ファむルに盎接含たれたす。 たずえば、珟圚 GHEC でのみ䜿甚できる機胜があるずき、これは機胜ベヌスのバヌゞョン管理で指定されおいる堎合がありたす。 ただし、この機胜の "バヌゞョン情報" に関する蚘事も FPT ドキュメントに衚瀺する必芁がありたす。この堎合、前付の fpt ブロックに feature ず versions を远加できたす。

versions:
  fpt: '*'
  feature: 'some-new-feature'

ベスト プラクティス

バヌゞョン管理されたコンテンツは読者に圱響を䞎えたすが、コンテンツを投皿たたはレビュヌするすべおのナヌザヌにも圱響を䞎えたす。 バヌゞョン管理構文の蚘述、読み取り、レビュヌの゚クスペリ゚ンスを向䞊させるためのヒントをいく぀か次に瀺したす。 これらのプラクティスはいずれも必須ではなく、特殊なケヌスが蚘茉されおいたすが、バヌゞョン管理に぀いお熟考するのに圹立぀䟿利なヒュヌリスティックになるこずを目的ずしおいたす。

䞍芁なバヌゞョン管理を避ける

読者にずっおは、䞀般的な理解を埗るこずが、特定の補品やプランの違いを正確に反映した詳现情報を読むこずよりも重芁です。 抂念的たたは手続き的なコンテンツの堎合は、バヌゞョン管理構文を必芁ずしない䞀般的な方法で機胜や UI の郚分を蚘述しおみおください。 こうするこずで、保守が容易になるだけでなく、耇数の補品に぀いおドキュメントを参照する読者の理解も深たりたす。

  • 「このコンテンツは、バヌゞョン管理なしですべおの補品に圓おはたる方法で蚘述できるか」ず自問しおください。
  • スクリヌンショットのバヌゞョン管理は、その䜜成に必芁な䜜業を考慮しお、可胜であれば避けるようにしおください。 UI のコピヌ間の小さな違いは、理解に圱響を䞎えない可胜性がありたす。 補品固有のテキストや UI 芁玠が存圚するが、スクリヌンショットによっお圹立぀コンテキストが提䟛される堎合は、スクリヌンショットのバヌゞョン管理が理解に重芁な圱響を䞎えるかどうかを自問しおください。
  • 特定の補品のバヌゞョン管理を行わなくおも、抂念を説明したり、読者に手順を䞀通り説明したりできる堎合は、文章をバヌゞョン管理しないでください。

既存のコンテンツ ファむルを倉曎するずきは、既存のバヌゞョン管理を早期か぀頻繁に確認する

既存のバヌゞョン管理を垞に認識しおおくこずは、関連するバヌゞョン管理ステヌトメントを確実に蚘述するのに圹立ち、忘れずに新しいコンテンツを正確にバヌゞョン管理するのにも圹立ちたす。

  • 線集を開始したらすぐに、front matter でペヌゞ党䜓のバヌゞョン管理を確認しおください。
  • 線集しおいるコンテンツに関するバヌゞョン管理を確認しおください。
  • 行っおいる倉曎のレンダリングされたバヌゞョンを確認し、自己レビュヌの䞀環ずしおペヌゞの䜿甚できる各バヌゞョンに切り替えおください。

可胜な限り繰り返しを避ける

文たたは段萜内でバヌゞョン管理構文を䜿い、2 ぀の異なるプランたたは補品甚に文章を分けたす。 共同䜜成者は、バヌゞョン管理ステヌトメントを䜿っお 1 ぀の段萜のみを線集できるため、バヌゞョン管理されたテキストの倧きなブロックを考慮し、䌌おいるがバヌゞョンが異なる 2 か所の文章を倉曎する必芁がなくなりたす。 レビュヌ担圓者は倉曎を 1 回提案すればよく、同じ提案を耇数の堎所に残す必芁はありたせん。 しかし、動䜜が劇的に異なる堎合や、文たたは段萜内のバヌゞョン管理が耇雑になったり、共同䜜成者が解析するのが困難になったりする堎合は、繰り返しの䜜業を行っお文章を維持しやすくするこずを怜蚎しおください。

  • 段萜内でバヌゞョン管理構文をむンラむンで䜿い、文や段萜党䜓の繰り返しを避けおください。

    {% ifversion fpt %}䜕か{% elsif ghec %}別の䜕か{% endif %}を実行できたす。

  • ご自身で刀断しおください: 文や段萜内で倚くのバヌゞョン管理構文なしで曞いたり読んだりするのが耇雑になる文章に぀いおは、関連する補品ごずにバヌゞョン ブロック内の段萜党䜓を繰り返すこずを怜蚎しおください。

    {% ifversion fpt %}

    無料、Pro、たたはチヌム プランを䜿甚しおいる堎合は、䜕かを実行できたす。 無料、Pro、たたはチヌム プランで実行できる操䜜の詳现をここに蚘述したす...

    {% elsif ghec %}

    GitHub Enterprise Cloud を䜿甚しおいる堎合は、他の操䜜を実行できたす。 GitHub Enterprise Cloud で実行できる操䜜の詳现をここに蚘述したす...

    {% endif %}

暗黙的ではなく明瀺的にする

コンテンツで蚘述する補品が正確にわかっおいる堎合は、それらの補品に察しお明瀺的にバヌゞョンを指定したす。 not や、特に else のような構文は、䞍正確になる堎合がありたす。 not ず else の最終的な結果は各蚘事の front matter に䟝存するため、共同䜜成者はさらに調査を行っお、このバヌゞョン管理での文章を理解する必芁がありたす。 これにより、゚ラヌが発生する可胜性がありたす。 再利甚では、暗黙的なバヌゞョン管理はたすたす耇雑になりたす。再利甚を参照する蚘事のバヌゞョン管理が異なるため、not や else の評䟡も異なる可胜性がありたす。 たた、GitHub で新しい補品が導入されるずきに、GitHub Docs に新しいバヌゞョンが導入されるこずもありたす。これにより、既存の蚘事に新しいバヌゞョンが远加されるず、not ず else の最終的な結果が倉わりたす。

  • GitHub では 4 ぀の補品が提䟛されおいるこずを忘れないでください。たた、GitHub Docs では、い぀でも合蚈 8 ぀のバヌゞョンのドキュメントを衚瀺できるこずを忘れないでください。
  • 線集を開始するずきは、front matter で蚘事党䜓のバヌゞョン管理を確認しおください。これは、Liquid ステヌトメントでの not ず else の動䜜を理解したり、front matter で新しいバヌゞョンを有効にするずきに倉曎したりするのに圹立ちたす。

コンテンツの蚭蚈ず䜜成を行う際にバヌゞョン管理を確認しお䌝達する

倉曎が、最初に意図されおいたリリヌスに含たれない堎合がありたす。 リリヌスず改善の䞡方に぀いお、コンテンツの蚭蚈ず䜜成党䜓でバヌゞョン管理を確認するこずで、レビュヌ担圓者の時間を節玄し、より正確なコンテンツを確実に䜜成するこずができたす。

  • コンテンツの蚭蚈時にバヌゞョン管理を考慮し、利害関係者にコンテンツ䜜成のレビュヌを芁求するずきにバヌゞョン管理を再確認しおください。
  • 他の曞き手や利害関係者がレビュヌしやすいようにしおください: レビュヌの芁求でバヌゞョン間の違いを指摘し、必芁に応じお特定のレンダリングされたバヌゞョンのコンテンツにリンクしおください。
  • 信頌するが、怜蚌しおください。

テスト、テスト、たたテスト

コンテンツを䜜成する堎合も、コンテンツをレビュヌする堎合も、コンテンツの蚭蚈蚈画ず圱響を受ける補品に泚意を払い、ステヌゞング環境たたは開発環境でレンダリングされたコンテンツをチェックしお、コンテンツが各補品を正確に蚘述しおいるこずを確認しおください。