Hugoで管理しているブログの記事のファイル名には、プレフィックスとして連番の数字を付与している。
100-Hugoの記事のタイトルからプレフィックスを削除したい.md
hugo new contet
でこのようなファイルから記事を作成した場合、記事のタイトルにプレフィックスが残ってしまう。
タイトルからプレフィックスを削除したい。
解決策
archetypes
ファイルのタイトル処理でプレフィックスを削除すれば良い。
現状、archetypes
ファイルは以下になっている。
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
それを、以下のように修正すれば良い。
---
title: "{{ .Name | replaceRE "^[0-9]+-" "" | humanize | title }}"
date: {{ .Date }}
draft: true
---
以下に詳細を説明する。
| (Pipelines)
|
(Pipelines)は、Hugo
(正確にはGo
のテンプレート言語)のコマンドを繋げる仕組みである。
|
の前後には、値(例: "hello world")
やメソッド(例: .Name)
、そして関数とその引数(例: printf "%s")
を指定できる。
|
の後に、関数とその引数(例: printf "%s")
を指定した場合は、|
の前を評価した結果が、関数とその引数(例: printf "%s")
の最後の引数となる。
そのため、以下のコードは、
"abcdef" | printf "%s"
以下と同じ意味となる。
$var := "abcdef"
printf "%s" $var
📄
注意
Hugoのrelpace
関数のシンタックスは以下のように、
置換対象の文字列が第1引数になる。
replace INPUT OLD NEW [LIMIT]
そのため、置換対象の文字列をパイプでつないで渡すことはできない。
置換したい場合は、strings.ReplaceRE | Hugoを利用したほうが良さそう。
replaceRE PATTERN REPLACEMENT INPUT [LIMIT]