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

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

このコミットは、Go言語の公式ドキュメントサイトにおけるコード表示のスタイルを改善するためのものです。具体的には、コードブロックに表示される行番号の色を、より目立たないグレーに変更することで、コード本体の可読性を向上させています。

コミット

  • コミットハッシュ: a50315304d58ab73ea8267f940761f1372e21361
  • 作者: Andrew Gerrand adg@golang.org
  • 日付: 2012年2月15日 (水) 10:31:28 +1100
  • コミットメッセージ:
    doc: grey out line numbers
    
    R=gri
    CC=golang-dev
    https://golang.org/cl/5675049
    

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

https://github.com/golang/go/commit/a50315304d58ab73ea8267f940761f1372e21361

元コミット内容

doc: grey out line numbers

R=gri
CC=golang-dev
https://golang.org/cl/5675049

変更の背景

Go言語のドキュメントでは、コード例がpreタグで囲まれ、その中にシンタックスハイライトされたコードと行番号が表示されていました。このコミット以前は、行番号がコード本体と同じような色で表示されていた可能性があります。これにより、コード本体を読む際に、行番号が視覚的なノイズとなり、読みにくさを引き起こす可能性がありました。

この変更の背景には、ユーザーエクスペリエンスの向上、特にドキュメントの可読性改善という目的があります。行番号は参照のために重要ですが、コードの内容を理解する上では補助的な情報であり、主役ではありません。そのため、行番号の色を控えめなグレーにすることで、コード本体に視線が集中しやすくなり、全体的な読書体験が向上すると判断されたと考えられます。

前提知識の解説

このコミットを理解するためには、以下の技術的な概念を把握しておく必要があります。

  1. HTML (<pre>タグ):

    • preタグは "preformatted text" の略で、HTMLにおいて整形済みテキストを表示するために使用されます。
    • このタグ内のテキストは、通常、等幅フォントで表示され、空白文字(スペース、タブ、改行)がそのまま保持されます。
    • コードブロックを表示する際によく用いられ、インデントや改行がそのまま反映されるため、ソースコードの構造を正確に表現するのに適しています。
  2. CSS (Cascading Style Sheets):

    • CSSは、HTMLやXMLドキュメントの見た目(スタイル)を記述するためのスタイルシート言語です。
    • 要素の色、フォント、レイアウトなどを指定し、コンテンツとプレゼンテーションを分離することで、ウェブページの管理とデザインの柔軟性を高めます。
    • セレクタ: CSSでは、スタイルを適用するHTML要素を指定するためにセレクタを使用します。
      • pre: preタグに直接スタイルを適用します。
      • .ln: クラス名が ln の要素にスタイルを適用します。HTMLでは <span class="ln"> のように使用されます。この場合、ln は "line number" の略であると推測されます。
      • pre .ln: preタグの子孫要素である、クラス名が ln の要素にスタイルを適用します。これは、preタグ内の行番号にのみスタイルを適用するための、より具体的なセレクタです。
    • プロパティ: colorプロパティは、テキストの色を指定するために使用されます。
    • : #999 は16進数表記のカラーコードで、RGB値がそれぞれ99(赤)、99(緑)、99(青)であることを示します。これは中間的なグレーの色を表します。
  3. シンタックスハイライト:

    • プログラミング言語のソースコードを、キーワード、文字列、コメント、変数名など、構文要素に応じて異なる色やスタイルで表示する機能です。
    • これにより、コードの構造が視覚的に明確になり、可読性が向上します。多くのIDEやテキストエディタ、そしてウェブ上のコード表示で利用されています。
    • このコミットの文脈では、Goドキュメントのコードブロックにおいて、行番号もシンタックスハイライトの一部として扱われていたか、あるいは独立した要素としてスタイルが適用されていたと考えられます。
  4. Gerrit Change-ID:

    • https://golang.org/cl/5675049 のようなリンクは、Gerritというコードレビューシステムにおける変更セット(Change-ID)を指します。
    • Goプロジェクトでは、GitHubにプッシュされる前に、Gerritを通じてコードレビューが行われるのが一般的です。このリンクは、このコミットがGerrit上でどのようにレビューされ、承認されたかを示す追跡IDとなります。

技術的詳細

このコミットは、doc/style.css ファイルに対して行われた非常にシンプルかつ効果的なCSSの変更です。

変更内容は以下の通りです。

pre .ln {
    color: #999;
}
  • セレクタ pre .ln:
    • これは、HTMLドキュメント内で<pre>タグの子孫要素として存在する、class="ln"を持つすべての要素にスタイルを適用することを意味します。
    • Goのドキュメントサイトでは、コードブロック内の行番号が<span class="ln">のような形でマークアップされていたと推測されます。このセレクタは、まさにその行番号の<span>要素をターゲットにしています。
  • プロパティ color:
    • テキストの色を指定するCSSプロパティです。
  • #999:
    • これは16進数カラーコードで、RGB値がそれぞれ#999999、つまりR:153, G:153, B:153のグレーを意味します。
    • この色は、黒いテキスト(#222など)やシンタックスハイライトされたコードの色と対比して、目立ちすぎず、しかし視認性を保つ程度の控えめなグレーです。

この変更により、Goドキュメントサイト上のすべてのコードブロックにおいて、行番号がこの新しいグレーの色で表示されるようになります。これにより、コード本体の黒や他のハイライト色とのコントラストが適切に調整され、行番号が視覚的な邪魔にならず、コードの読みやすさが向上します。

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

--- a/doc/style.css
+++ b/doc/style.css
@@ -10,6 +10,9 @@ pre, code {
 pre .comment {
 	color: #375EAB;
 }
+pre .ln {
+	color: #999;
+}
 body {
 	color: #222;
 }

この差分は、doc/style.css ファイルの10行目付近に新しいCSSルールが追加されたことを示しています。

  • pre, code { ... }pre .comment { ... } といった既存のスタイルルールの後に、新しいルールが挿入されています。
  • 追加されたのは3行で、pre .ln { color: #999; } というCSSブロックです。

コアとなるコードの解説

追加されたCSSルール pre .ln { color: #999; } は、Goドキュメントサイトのコード表示における行番号の視覚的な優先度を下げることを目的としています。

  • pre: このセレクタは、整形済みテキストを表示するためのHTML要素である<pre>タグを指します。Goのドキュメントでは、コード例がこのタグ内に配置されています。
  • .ln: これはクラスセレクタで、HTML要素に適用された class="ln" という属性を指します。Goのドキュメントのコード表示において、各行番号は通常、<span class="ln"> のようなHTML要素でラップされていると推測されます。
  • color: #999;: この宣言は、セレクタによって選択された要素(この場合は行番号)のテキスト色を、16進数カラーコード #999 で指定されるグレーに変更します。

この変更が適用されると、ユーザーがGoのドキュメントでコード例を見た際に、行番号が以前よりも薄いグレーで表示されるようになります。これにより、コード本体の黒やシンタックスハイライトされた色(例えばコメントの青 #375EAB)がより際立ち、視線がコードの内容に集中しやすくなります。結果として、ドキュメントのコード例の可読性が向上し、ユーザーはより快適にコードを読み進めることができるようになります。これは、小さな変更ながらも、ユーザーエクスペリエンスに大きく貢献する改善と言えます。

関連リンク

  • Gerrit Change-ID: https://golang.org/cl/5675049 - このコミットがGoプロジェクトのコードレビューシステムGerritでどのように扱われたかを示すリンクです。

参考にした情報源リンク