GitLab ドキュメントにおけるリダイレクト
ページを移動したりリネームしたり削除したりするときには、リダイレクトを追加しなければなりません。リダイレクトを使うことで、ユーザーが古いリンクからドキュメントサイトを訪れたときに 404 を受け取る頻度を減らすことができます。
確実にリダイレクトを追加してください:
- ユーザーには新しいページが表示され、ブックマークを更新または削除することができます。
- 特にリダイレクトリンクをチェックする自動化機能を持つサイトでは、外部サイトがリンクを更新することができます。
-
ドキュメントサイトのグローバル・ナビゲーションは、見つからないページにリンクしていません。
グローバルナビゲーションのリンクはプロジェクトでテスト済みです
gitlab-docs
。リダイレクトが欠gitlab-docs
落していると、プロジェクトのmain
ブランチが壊れる可能性があります。
ページの移動、名前の変更、削除を行うマージリクエストには、必ずテクニカルライターを割り当ててください。テクニカルライターはどのような質問にも対応し、あなたの変更をレビューすることができます。
リダイレクトの種類
リダイレクトには2種類あります:
-
ドキュメントファイル自体に追加されるリダイレクト。自己管理インスタンス上で
/help
。例えば、/help
on GitLab.com。これらは、docの名前を変更したり移動したりするのと同じMRで追加する必要があります。内部ページへのリダイレクトは3ヶ月後、外部ページ(https:
で始まる)へのリダイレクトは1年後に失効します。 - GitLab Pagesのリダイレクトは、リダイレクトファイルの有効期限が切れた後に自動的に追加されます。コントリビューターが手動で追加してはならず、9ヶ月後に失効します。外部サイトへのリダイレクトはGitLab Pagesのリダイレクトには追加されません。
期限切れのリダイレクトファイルは、テクニカルライティングチームの月次タスクの一環として、clean_redirects
Rake taskによってドキュメントプロジェクトから削除されます。
すでに存在するページへのリダイレクト
ページを同じリポジトリ内の別のページにリダイレクトします:
-
新しい場所に移動させたいMarkdownファイルで
- すべてのコンテンツを削除します。
-
次の内容を追加します:
--- redirect_to: '../newpath/to/file/index.md' remove_date: 'YYYY-MM-DD' --- This document was moved to [another location](../path/to/file/index.md). <!-- This redirect file can be deleted after <YYYY-MM-DD>. --> <!-- Redirects that point to other docs in the same project expire in three months. --> <!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. --> <!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
-
../newpath/to/file/index.md
のインスタンスを新しいファイルパスに置き換えます。 -
YYYY-MM-DD
の両方のインスタンスを、テンプレートで説明されているように、有効期限で置き換えます。
-
そのページに他のページで使われていない画像があった場合は、それらを削除してください。
変更をコミットした後、古いファイルを指すリンクをすべて検索し、更新します:
-
https://gitlab.com/gitlab-com/www-gitlab-com で、完全な URL を検索します:
grep -r "docs.gitlab.com/ee/path/to/file.html" .
-
https://gitlab.com/gitlab-org/gitlab-docs/-/tree/master/content/_data で、ナビゲーション・バーの設定ファイルを検索し、
.html
でパスを検索します:grep -r "path/to/file.html" .
-
4つの内部プロジェクトのいずれかで、ドキュメントとコードベースのリンクを検索します。完全なURLとパスだけを含むすべてのバリエーションを検索します。例えば、
gitlab
プロジェクトのルート・ディレクトリに移動し、実行します:grep -r "docs.gitlab.com/ee/path/to/file.html" . grep -r "path/to/file.html" . grep -r "path/to/file.md" . grep -r "path/to/file" .
すべてのケースを見つけるには、
../path/to/file
や../file
のような相対リンクのバリエーションを試す必要があるかもしれません。
ファイルの場所の移動
あるファイルをある場所から別の場所に移動したい場合は、 移動はしません。代わりにファイルを複製し、古いファイルにリダイレクトコードを追加します。
- 新しいファイルを作成します。
- 古いファイルの内容を新しいファイルにコピーします。
- 古いファイルの内容をすべて削除します。
- 古いファイルにリダイレクトコードを追加し、「既に存在するページへのリダイレクト」トピックの残りの手順に従ってください。
コードを使ってリダイレクトを追加
スクリプトを使ってリダイレクトを作成したい場合:
以下のRakeタスクを実行して、古いドキュメントファイルにリダイレクトコードを追加してください。最初の引数は古いファイルのパスで、2番目の引数は新しいファイルのパスです:
-
同じプロジェクト内のページにリダイレクトするには、相対パスと
.md
拡張子を使います。古いパスも新しいパスも同じ場所から始まります。次の例では、両方のパスはdoc/
からの相対パスです:bundle exec rake "gitlab:docs:redirect[doc/user/search/old_file.md, doc/api/new_file.md]"
-
別のプロジェクトやサイトのページにリダイレクトするには、完全な URL (
https://
を含む) を使用します:bundle exec rake "gitlab:docs:redirect[doc/user/search/old_file.md, https://example.com]"
-
また、引数を省略し、値を入力するようにプロンプトを表示することもできます:
bundle exec rake gitlab:docs:redirect
リリース前に作成されたページのリダイレクト
新しいページを作成し、それが18日のリリースに追加される前に名前を変更した場合:
その手順を踏む代わりに、テクニカルライターに頼んで手動でredirects.yaml
にリダイレクトを追加してもらいましょう。
リダイレクトの例外
場合によっては、リダイレクトの追加を省略してファイルを削除してもかまいません。そのページはすでにナビゲーションから削除されている (あるいは存在しなかった) 必要があり、以下のいずれかが真でなければなりません:
- ページが同じリリースで追加、削除され、自己管理リリースに含まれていないこと。
- このページには、プレースホルダページや利用統計が極端に少ないページのような、価値のあるコンテンツは含まれていません。