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

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

このコミットは、godocツールが生成するドキュメントの表示に関するスタイル調整を行っています。具体的には、コードブロック(<pre>タグで囲まれた部分)の行の高さを調整し、視認性と可読性を向上させることを目的としています。

コミット

commit 43cfbb0fb50b468830b52a568b283c4514a3c481
Author: Andrew Gerrand <adg@golang.org>
Date:   Wed Feb 22 12:45:01 2012 +1100

    godoc: adjust line height in pre blocks
    
    R=gri, dsymonds
    CC=golang-dev
    https://golang.org/cl/5687071

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

https://github.com/golang/go/commit/43cfbb0fb50b468830b52a568b283c4514a3c481

元コミット内容

godoc: adjust line height in pre blocks

このコミットは、godocが生成するHTMLドキュメント内の<pre>要素(整形済みテキスト、主にコード表示に使用される)の行の高さを調整するものです。

変更の背景

godocはGo言語のソースコードからドキュメントを生成するツールであり、開発者がコードのドキュメントを閲覧する際に利用されます。生成されるドキュメントには、コード例や関数定義などが整形済みテキストとして表示されます。

このコミットが行われた背景には、おそらくデフォルトのCSS設定では<pre>ブロック内のテキスト、特にコードの行間が狭すぎ、視認性が低いという問題があったと考えられます。行間が狭いと、特に長いコードブロックや、複数の行にわたるコメントなどが連続する場合に、テキストが密集して読みにくくなります。この調整は、ユーザーエクスペリエンスの向上、特にコードの可読性改善を目的としています。

前提知識の解説

godoc

godocは、Go言語の公式ドキュメンテーションツールです。Goのソースコードに記述されたコメントや宣言から自動的にドキュメントを生成し、ウェブブラウザで閲覧可能な形式で提供します。Goのパッケージ、関数、型、変数などの詳細な情報を、コードと密接に連携した形で表示できるため、Go開発者にとって非常に重要なツールです。godocは、Goの標準ライブラリのドキュメント(https://pkg.go.dev/)の生成にも使用されています。

HTMLの<pre>タグ

HTMLの<pre>タグは「preformatted text」(整形済みテキスト)を表します。このタグで囲まれたテキストは、通常、等幅フォントで表示され、HTMLソースコード内の空白(スペース、タブ、改行)がそのままブラウザに反映されます。これは、プログラムのコード、アスキーアート、またはその他の整形済みテキストを表示するのに非常に適しています。

CSSのline-heightプロパティ

line-heightはCSSのプロパティで、行の高さ、つまりテキストの行と行の間の垂直方向のスペースを制御します。このプロパティは、テキストの可読性に大きな影響を与えます。

  • 値の指定方法:

    • 単位付きの長さ: px (ピクセル), em (要素のフォントサイズに対する相対値), rem (ルート要素のフォントサイズに対する相対値) などで具体的な高さを指定します。例: line-height: 18px;
    • 数値: フォントサイズに対する倍率として指定します。例: line-height: 1.5; (フォントサイズの1.5倍)。この方法は、フォントサイズが変更されても相対的な行の高さが維持されるため、推奨されることが多いです。
    • normal: ブラウザのデフォルト値。通常はフォントサイズの約1.2倍程度です。
  • 可読性への影響:

    • line-heightが小さすぎると、行が密集しすぎて読みにくくなります。特に長い文章やコードブロックでは、目が次の行を追うのが難しくなります。
    • line-heightが大きすぎると、行間が広がりすぎて、テキストのまとまりが失われ、読みにくくなることがあります。
    • 適切なline-heightは、テキストのフォントサイズ、フォントファミリー、行の長さなどによって異なりますが、一般的にはフォントサイズの1.2〜1.6倍程度が推奨されます。

技術的詳細

このコミットは、godocが使用するスタイルシートdoc/style.cssに、<pre>要素に対するline-heightの指定を追加しています。

変更前は、<pre>要素のline-heightはブラウザのデフォルト値(通常normal、約1.2倍)に依存していました。このデフォルト値では、font-size: 14px;で指定されたフォントサイズに対して、行間が十分に確保されていなかった可能性があります。

コミットでは、preセレクタに対してline-height: 18px;という具体的なピクセル値を設定しています。これは、font-size: 14px;のテキストに対して、18px / 14px ≈ 1.28という比率の行の高さを与えることになります。この値は、元のフォントサイズに対して約1.28倍の行間を確保することになり、デフォルトのnormalよりもわずかに広い行間を提供し、コードブロックの可読性を向上させます。

具体的なピクセル値で指定することで、ブラウザ間の差異を吸収し、一貫した表示を実現する意図があったと考えられます。特にコード表示においては、行の高さが揃っていることが重要であり、この変更はその目的を達成しています。

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

--- a/doc/style.css
+++ b/doc/style.css
@@ -7,6 +7,9 @@ pre, code {
 	font-family: Menlo, monospace;\n 	font-size: 14px;\n }\n+pre {\n+\tline-height: 18px;\n+}\n pre .comment {\n 	color: #375EAB;\n }\n```

## コアとなるコードの解説

変更は`doc/style.css`ファイルに対して行われています。

-   **追加されたCSSルール**:
    ```css
    pre {
    	line-height: 18px;
    }
    ```
    このCSSルールは、HTMLドキュメント内のすべての`<pre>`要素に適用されます。`line-height`プロパティに`18px`という固定値が設定されています。

この変更により、`godoc`によって生成されるHTMLドキュメントにおいて、コードブロックやその他の整形済みテキストが表示される際の行間が`18px`に固定されます。これにより、テキストの行が互いに適切な距離を保ち、視覚的な混雑が緩和され、特にコードの読みやすさが向上します。

## 関連リンク

-   GitHubコミットページ: [https://github.com/golang/go/commit/43cfbb0fb50b468830b52a568b283c4514a3c481](https://github.com/golang/go/commit/43cfbb0fb50b468830b52a568b283c4514a3c481)
-   Go CL (Code Review): [https://golang.org/cl/5687071](https://golang.org/cl/5687071)

## 参考にした情報源リンク

-   MDN Web Docs: `<pre>`: [https://developer.mozilla.org/ja/docs/Web/HTML/Element/pre](https://developer.mozilla.org/ja/docs/Web/HTML/Element/pre)
-   MDN Web Docs: `line-height`: [https://developer.mozilla.org/ja/docs/Web/CSS/line-height](https://developer.mozilla.org/ja/docs/Web/CSS/line-height)
-   Go言語公式ドキュメント: [https://go.dev/](https://go.dev/)
-   Go Packages (pkg.go.dev): [https://pkg.go.dev/](https://pkg.go.dev/)