From 13b159c6dd499b5c67a110e02780d9e741f0ecdb Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 24 Feb 2025 06:27:07 +0900 Subject: feat(blog/nuldoc): do not insert whitespace to linebreaks between Japanese sentences --- .../index.html | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range') diff --git a/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html b/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html index 9abb2e7b..2d2c3761 100644 --- a/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html +++ b/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html @@ -61,14 +61,14 @@

TL;DR

- 常にトップレベルを指す特殊変数 $ を使えばよい。 + 常にトップレベルを指す特殊変数 $ を使えばよい。

はじめに

- Go には、標準ライブラリにテンプレートライブラリ text/template がある。 この text/template における制御構造、withrange は次のように使われる。 + Go には、標準ライブラリにテンプレートライブラリ text/template がある。この text/template における制御構造、withrange は次のように使われる。

# {{ .Title }}
@@ -86,15 +86,15 @@
 {{ end }}

- text/template. は、現在の操作対象を表す特殊なオブジェクトである。 + text/template. は、現在の操作対象を表す特殊なオブジェクトである。

- withrange は、. を変更する効果を持つ。 with は引数に渡されたオブジェクトを . へセットして、内部のテンプレートを実行する。 range は引数に渡されたイテレート可能なオブジェクトに対し、それぞれの要素を . へセットして、要素の個数だけ内部のテンプレートを実行する。 + withrange は、. を変更する効果を持つ。with は引数に渡されたオブジェクトを . へセットして、内部のテンプレートを実行する。range は引数に渡されたイテレート可能なオブジェクトに対し、それぞれの要素を . へセットして、要素の個数だけ内部のテンプレートを実行する。

- つまりこのテンプレートは、次のような構造をレンダリングしている (Execute() の第2引数)。 + つまりこのテンプレートは、次のような構造をレンダリングしている (Execute() の第2引数)。

tmpl.Execute(out, Params{
@@ -114,7 +114,7 @@
           

やりたいこと

- 今回おこないたいのは、withrange の中で、その外側で使われていたトップレベルのオブジェクトを参照することだ。 + 今回おこないたいのは、withrange の中で、その外側で使われていたトップレベルのオブジェクトを参照することだ。

{{ with .User }}
@@ -126,7 +126,7 @@
 {{ end }}

- withrange は、. を自身の対象オブジェクトに変更するので、 単に {{ with .User }} の中で .Title と書いても、それは UserTitle プロパティを参照しているとみなされる。 + withrange は、. を自身の対象オブジェクトに変更するので、単に {{ with .User }} の中で .Title と書いても、それは UserTitle プロパティを参照しているとみなされる。

@@ -136,18 +136,18 @@

{{ $params := . }}

- とでもしておけば実現は可能である。 + とでもしておけば実現は可能である。

- しかしながら、頻発するシチュエーションにしてはあまりに不恰好である。よりスマートな方法が用意されているはずだ。 + しかしながら、頻発するシチュエーションにしてはあまりに不恰好である。よりスマートな方法が用意されているはずだ。

解決方法

- 常にトップレベルを指す特殊変数 $ を使えばよい。 + 常にトップレベルを指す特殊変数 $ を使えばよい。

{{ with .User }}
@@ -159,11 +159,11 @@
 {{ end }}

- $ は、テンプレートが実行されるときに渡されたオブジェクトを指す。 これを使えば現在の . に関係なくトップレベルを参照できる。 + $ は、テンプレートが実行されるときに渡されたオブジェクトを指す。これを使えば現在の . に関係なくトップレベルを参照できる。

- このことは、text/template の公式ドキュメントにも以下のように記載されている。 + このことは、text/template の公式ドキュメントにも以下のように記載されている。

-- cgit v1.2.3-70-g09d2