Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 19703] ファイルの概要

このコミットは、Goプロジェクトのドキュメントファイル doc/docs.html におけるHTMLリストアイテム(<li>)の閉じタグの記述を統一することを目的としています。具体的には、これまで省略されていた </li> 閉じタグを明示的に追加することで、HTMLの整合性と可読性を向上させています。

コミット

commit 8e902dd726c6cd76aace8f70f929a520f736c214
Author: Robin Eklind <r.eklind.87@gmail.com>
Date:   Wed Jul 9 14:26:37 2014 -0700

    docs: Make consistent use of optional li closing tags.

    LGTM=r
    R=golang-codereviews, r
    CC=golang-codereviews
    https://golang.org/cl/105100044

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/8e902dd726c6cd76aace8f70f929a520f736c214

元コミット内容

docs: Make consistent use of optional li closing tags.

LGTM=r
R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/105100044

変更の背景

このコミットの背景には、HTMLドキュメントの記述における一貫性の確保と、将来的なメンテナンス性の向上が挙げられます。HTMLの <li> (リストアイテム) 要素は、特定の条件下では閉じタグ </li> を省略することが許容されていました(特にHTML4やXHTMLの過渡期)。しかし、これはHTMLパーサーの実装によって解釈が異なる可能性があり、またコードの可読性を低下させる要因にもなり得ます。

Goプロジェクトのドキュメントは、多くの開発者によって参照され、また貢献されるため、コードベース全体の品質と一貫性を保つことが重要です。このコミットは、doc/docs.html 内で <li> 要素の閉じタグが省略されている箇所を修正し、すべての <li> 要素に明示的に </li> を追加することで、HTMLの構文をより厳密にし、将来的なHTML5への移行や、異なるブラウザ・パーサーでの互換性問題を未然に防ぐことを意図しています。これにより、ドキュメントのレンダリングがより予測可能になり、ツールによる解析も容易になります。

前提知識の解説

HTMLのリスト要素 (<ul>, <ol>, <li>)

HTMLでは、リストを表示するために以下の要素が使用されます。

  • <ul> (Unordered List): 順序なしリストを作成します。各リストアイテムは通常、箇条書き記号(ディスク、円、四角など)で表示されます。
  • <ol> (Ordered List): 順序付きリストを作成します。各リストアイテムは通常、数字やアルファベットなどで順序付けされて表示されます。
  • <li> (List Item): <ul> または <ol> の子要素として、個々のリストアイテムを定義します。

HTMLの閉じタグの省略可能性

HTMLの仕様には、一部の要素で閉じタグを省略できるルールが存在します。これは、HTMLの歴史的経緯と、ブラウザがエラーを許容してレンダリングする「寛容なパーシング」の文化に起因します。

例えば、<li> 要素の場合、直後に別の <li> 要素が続く場合や、親要素である <ul> または <ol> の閉じタグ </ul> または </ol> が続く場合には、</li> 閉じタグを省略しても、多くのブラウザは正しく構造を解釈し、レンダリングします。

例(閉じタグ省略):

<ul>
    <li>アイテム1
    <li>アイテム2
</ul>

この場合、ブラウザは「アイテム1」の後に自動的に </li> があるものと解釈し、「アイテム2」の後に </li> があるものと解釈します。

しかし、この省略は以下のような問題を引き起こす可能性があります。

  1. 可読性の低下: コードを見たときに、要素の範囲がどこまでなのかが直感的に分かりにくくなることがあります。
  2. パーシングの曖昧さ: 厳密なHTMLパーサーやXMLパーサー(XHTMLなど)ではエラーとなる可能性があり、異なる環境での互換性に問題が生じることがあります。
  3. ツールとの相性: 静的解析ツールやコードフォーマッターが、省略された閉じタグの存在を前提としない場合、予期せぬ挙動を示すことがあります。
  4. HTML5のベストプラクティス: HTML5では、閉じタグの省略は依然として許容されていますが、一般的にはすべての要素に明示的な閉じタグを記述することが推奨されています。これは、XML(XHTML)の厳密な構文に慣れた開発者にとっては自然な記述方法であり、コードの一貫性と堅牢性を高めます。

このコミットは、このような背景から、Goプロジェクトのドキュメントにおいて、<li> 要素の閉じタグを明示的に記述するというベストプラクティスを適用し、コードベース全体の一貫性を高めるためのものです。

技術的詳細

このコミットは、doc/docs.html ファイル内の特定の <li> 要素に対して、省略されていた </li> 閉じタグを明示的に追加するという、非常にシンプルかつ直接的な変更です。

変更対象となった行は、Goのドキュメントページで提供されている記事へのリンクを含むリストアイテムです。

変更前は以下のようになっていました。

<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.
<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.

ここで注目すべきは、各 <li> 要素の行末に </li> がない点です。HTMLの仕様上、次の <li> 要素が始まるか、親要素が閉じられる場合に、前の <li> は自動的に閉じられたと解釈されます。

変更後は以下のようになります。

<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.</li>
<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.</li>

各行の末尾に </li> が追加されています。これにより、HTMLの構造がより明確になり、要素の開始と終了が明示的になります。

この変更は、HTMLのレンダリング結果に直接的な視覚的変化をもたらすものではありません。ブラウザは変更前も後も同じようにページを表示します。しかし、この変更は以下の点で重要です。

  1. 構文の明確化: HTMLの構造がより明確になり、人間がコードを読んだり、自動ツールが解析したりする際に、要素の範囲を正確に把握しやすくなります。
  2. 将来的な互換性: 将来的にHTMLパーサーの厳密性が増したり、異なるHTMLバージョンやXMLベースの技術(XHTMLなど)への移行が必要になったりした場合に、互換性の問題が発生するリスクを低減します。
  3. コードの一貫性: プロジェクト全体でHTMLの記述スタイルを統一することで、新しい開発者がコードベースに参加した際に、既存の慣習を理解しやすくなります。これは、大規模なオープンソースプロジェクトにおいて特に重要です。
  4. エラーの防止: 閉じタグの省略は、複雑なHTML構造の中で意図しない要素のネストや、CSSスタイルの適用範囲の誤解釈につながる可能性があります。明示的な閉じタグは、このような潜在的なエラーを防ぐのに役立ちます。

このコミットは、機能的な変更ではなく、コード品質とメンテナンス性を向上させるための「クリーンアップ」または「リファクタリング」の一種と見なすことができます。

コアとなるコードの変更箇所

--- a/doc/docs.html
+++ b/doc/docs.html
@@ -147,8 +147,8 @@ Guided tours of Go programs.
 <li><a href="/blog/godoc-documenting-go-code">Godoc: documenting Go code</a> - writing good documentation for <a href="/cmd/godoc/">godoc</a>.</li>
 <li><a href="/blog/profiling-go-programs">Profiling Go Programs</a></li>
 <li><a href="/doc/articles/race_detector.html">Data Race Detector</a> - a manual for the data race detector.</li>
-<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.\n-<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.\n+<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.</li>\n+<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.</li>\n </ul>

コアとなるコードの解説

このdiffは、doc/docs.html ファイルの変更を示しています。

  • -<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.

    • この行は、Go Race Detectorの紹介記事へのリンクを含むリストアイテムです。元のコードでは、<li> タグに対応する </li> 閉じタグが省略されていました。
  • -<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.

    • この行は、Goのアセンブラに関するガイドへのリンクを含むリストアイテムです。こちらも同様に、</li> 閉じタグが省略されていました。
  • +<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.</li>

    • 変更後のこの行では、元の行の末尾に </li> 閉じタグが追加されています。これにより、<li> 要素の範囲が明示的に定義されます。
  • +<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.</li>

    • 同様に、この行も末尾に </li> 閉じタグが追加されています。

この変更は、HTMLの構文的な一貫性を高めるためのものであり、ウェブページの見た目や機能に影響を与えるものではありません。しかし、コードの保守性、可読性、そして将来的な互換性の観点からは重要な改善です。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Goの公式ドキュメント: https://go.dev/doc/
  • MDN Web Docs (Mozilla Developer Network): HTML関連のドキュメント
  • W3C (World Wide Web Consortium): HTMLの標準仕様
# [インデックス 19703] ファイルの概要

このコミットは、Goプロジェクトのドキュメントファイル `doc/docs.html` におけるHTMLリストアイテム(`<li>`)の閉じタグの記述を統一することを目的としています。具体的には、これまで省略されていた `</li>` 閉じタグを明示的に追加することで、HTMLの整合性と可読性を向上させています。

## コミット

commit 8e902dd726c6cd76aace8f70f929a520f736c214 Author: Robin Eklind r.eklind.87@gmail.com Date: Wed Jul 9 14:26:37 2014 -0700

docs: Make consistent use of optional li closing tags.

LGTM=r
R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/105100044

## GitHub上でのコミットページへのリンク

[https://github.com/golang/go/commit/8e902dd726c6cd76aace8f70f929a520f736c214](https://github.com/golang/go/commit/8e902dd726c6cd76aace8f70f929a520f736c214)

## 元コミット内容

docs: Make consistent use of optional li closing tags.

LGTM=r R=golang-codereviews, r CC=golang-codereviews https://golang.org/cl/105100044


## 変更の背景

このコミットの背景には、HTMLドキュメントの記述における一貫性の確保と、将来的なメンテナンス性の向上が挙げられます。HTMLの `<li>` (リストアイテム) 要素は、特定の条件下では閉じタグ `</li>` を省略することが許容されていました(特にHTML4やXHTMLの過渡期)。しかし、これはHTMLパーサーの実装によって解釈が異なる可能性があり、またコードの可読性を低下させる要因にもなり得ます。

Goプロジェクトのドキュメントは、多くの開発者によって参照され、また貢献されるため、コードベース全体の品質と一貫性を保つことが重要です。このコミットは、`doc/docs.html` 内で `<li>` 要素の閉じタグが省略されている箇所を修正し、すべての `<li>` 要素に明示的に `</li>` を追加することで、HTMLの構文をより厳密にし、将来的なHTML5への移行や、異なるブラウザ・パーサーでの互換性問題を未然に防ぐことを意図しています。これにより、ドキュメントのレンダリングがより予測可能になり、ツールによる解析も容易になります。

## 前提知識の解説

### HTMLのリスト要素 (`<ul>`, `<ol>`, `<li>`)

HTMLでは、リストを表示するために以下の要素が使用されます。

*   **`<ul>` (Unordered List)**: 順序なしリストを作成します。各リストアイテムは通常、箇条書き記号(ディスク、円、四角など)で表示されます。
*   **`<ol>` (Ordered List)**: 順序付きリストを作成します。各リストアイテムは通常、数字やアルファベットなどで順序付けされて表示されます。
*   **`<li>` (List Item)**: `<ul>` または `<ol>` の子要素として、個々のリストアイテムを定義します。

### HTMLの閉じタグの省略可能性

HTMLの仕様には、一部の要素で閉じタグを省略できるルールが存在します。これは、HTMLの歴史的経緯と、ブラウザがエラーを許容してレンダリングする「寛容なパーシング」の文化に起因します。

例えば、`<li>` 要素の場合、直後に別の `<li>` 要素が続く場合や、親要素である `<ul>` または `<ol>` の閉じタグ `</ul>` または `</ol>` が続く場合には、`</li>` 閉じタグを省略しても、多くのブラウザは正しく構造を解釈し、レンダリングします。

**例(閉じタグ省略):**

```html
<ul>
    <li>アイテム1
    <li>アイテム2
</ul>

この場合、ブラウザは「アイテム1」の後に自動的に </li> があるものと解釈し、「アイテム2」の後に </li> があるものと解釈します。

しかし、この省略は以下のような問題を引き起こす可能性があります。

  1. 可読性の低下: コードを見たときに、要素の範囲がどこまでなのかが直感的に分かりにくくなることがあります。
  2. パーシングの曖昧さ: 厳密なHTMLパーサーやXMLパーサー(XHTMLなど)ではエラーとなる可能性があり、異なる環境での互換性に問題が生じることがあります。
  3. ツールとの相性: 静的解析ツールやコードフォーマッターが、省略された閉じタグの存在を前提としない場合、予期せぬ挙動を示すことがあります。
  4. HTML5のベストプラクティス: HTML5では、閉じタグの省略は依然として許容されていますが、一般的にはすべての要素に明示的な閉じタグを記述することが推奨されています。これは、XML(XHTML)の厳密な構文に慣れた開発者にとっては自然な記述方法であり、コードの一貫性と堅牢性を高めます。

このコミットは、このような背景から、Goプロジェクトのドキュメントにおいて、<li> 要素の閉じタグを明示的に記述するというベストプラクティスを適用し、コードベース全体の一貫性を高めるためのものです。

技術的詳細

このコミットは、doc/docs.html ファイル内の特定の <li> 要素に対して、省略されていた </li> 閉じタグを明示的に追加するという、非常にシンプルかつ直接的な変更です。

変更対象となった行は、Goのドキュメントページで提供されている記事へのリンクを含むリストアイテムです。

変更前は以下のようになっていました。

<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.
<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.

ここで注目すべきは、各 <li> 要素の行末に </li> がない点です。HTMLの仕様上、次の <li> 要素が始まるか、親要素が閉じられる場合に、前の <li> は自動的に閉じられたと解釈されます。

変更後は以下のようになります。

<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.</li>
<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.</li>

各行の末尾に </li> が追加されています。これにより、HTMLの構造がより明確になり、要素の開始と終了が明示的になります。

この変更は、HTMLのレンダリング結果に直接的な視覚的変化をもたらすものではありません。ブラウザは変更前も後も同じようにページを表示します。しかし、この変更は以下の点で重要です。

  1. 構文の明確化: HTMLの構造がより明確になり、人間がコードを読んだり、自動ツールが解析したりする際に、要素の範囲を正確に把握しやすくなります。
  2. 将来的な互換性: 将来的にHTMLパーサーの厳密性が増したり、異なるHTMLバージョンやXMLベースの技術(XHTMLなど)への移行が必要になったりした場合に、互換性の問題が発生するリスクを低減します。
  3. コードの一貫性: プロジェクト全体でHTMLの記述スタイルを統一することで、新しい開発者がコードベースに参加した際に、既存の慣習を理解しやすくなります。これは、大規模なオープンソースプロジェクトにおいて特に重要です。
  4. エラーの防止: 閉じタグの省略は、複雑なHTML構造の中で意図しない要素のネストや、CSSスタイルの適用範囲の誤解釈につながる可能性があります。明示的な閉じタグは、このような潜在的なエラーを防ぐのに役立ちます。

このコミットは、機能的な変更ではなく、コード品質とメンテナンス性を向上させるための「クリーンアップ」または「リファクタリング」の一種と見なすことができます。

コアとなるコードの変更箇所

--- a/doc/docs.html
+++ b/doc/docs.html
@@ -147,8 +147,8 @@ Guided tours of Go programs.
 <li><a href="/blog/godoc-documenting-go-code">Godoc: documenting Go code</a> - writing good documentation for <a href="/cmd/godoc/">godoc</a>.</li>
 <li><a href="/blog/profiling-go-programs">Profiling Go Programs</a></li>
 <li><a href="/doc/articles/race_detector.html">Data Race Detector</a> - a manual for the data race detector.</li>
-<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.\n-<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.\n+<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.</li>\n+<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.</li>\n </ul>

コアとなるコードの解説

このdiffは、doc/docs.html ファイルの変更を示しています。

  • -<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.

    • この行は、Go Race Detectorの紹介記事へのリンクを含むリストアイテムです。元のコードでは、<li> タグに対応する </li> 閉じタグが省略されていました。
  • -<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.

    • この行は、Goのアセンブラに関するガイドへのリンクを含むリストアイテムです。こちらも同様に、</li> 閉じタグが省略されていました。
  • +<li><a href="/blog/race-detector">Introducing the Go Race Detector</a> - an introduction to the race detector.</li>

    • 変更後のこの行では、元の行の末尾に </li> 閉じタグが追加されています。これにより、<li> 要素の範囲が明示的に定義されます。
  • +<li><a href="/doc/asm">A Quick Guide to Go\'s Assembler</a> - an introduction to the assembler used by Go.</li>

    • 同様に、この行も末尾に </li> 閉じタグが追加されています。

この変更は、HTMLの構文的な一貫性を高めるためのものであり、ウェブページの見た目や機能に影響を与えるものではありません。しかし、コードの保守性、可読性、そして将来的な互換性の観点からは重要な改善です。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Goの公式ドキュメント: https://go.dev/doc/
  • MDN Web Docs (Mozilla Developer Network): HTML関連のドキュメント
  • W3C (World Wide Web Consortium): HTMLの標準仕様