From 7734ea7d8abb4b2a8e95dc8691471dee997a607a Mon Sep 17 00:00:00 2001 From: MacRat Date: Mon, 25 Mar 2024 21:30:04 +0900 Subject: [PATCH] feat(builder): support licensing images in blog posting --- builder/markdown.go | 26 +++++++++++++++++++++-- pages/blog/2024/01/blanktar-renewal.md | 2 +- pages/blog/2024/01/golang-resize-image.md | 4 ++-- templates/index.html | 9 ++++++++ 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/builder/markdown.go b/builder/markdown.go index 097ca1ef..45895a97 100644 --- a/builder/markdown.go +++ b/builder/markdown.go @@ -345,8 +345,8 @@ func (r ImageRenderer) Render(w markdown.BufWriter, source []byte, node ast.Node image := node.(*ast.Image) - sizes := regexp.MustCompile(`^([0-9]+)x([0-9]+)$`).FindSubmatch(image.Title) - if len(sizes) == 3 { + sizes := regexp.MustCompile(`^([0-9]+)x([0-9]+)( CC-BY)?$`).FindSubmatch(image.Title) + if len(sizes) >= 3 { _, err := fmt.Fprintf( w, `%s`, @@ -355,6 +355,28 @@ func (r ImageRenderer) Render(w markdown.BufWriter, source []byte, node ast.Node sizes[1], sizes[2], ) + if err != nil { + return ast.WalkStop, err + } + + if len(sizes) >= 4 && string(sizes[3]) == " CC-BY" { + _, err = fmt.Fprintf(w, ` + + `, image.Destination) + } return ast.WalkSkipChildren, err } else { diff --git a/pages/blog/2024/01/blanktar-renewal.md b/pages/blog/2024/01/blanktar-renewal.md index 79f0f972..c2b86fcc 100644 --- a/pages/blog/2024/01/blanktar-renewal.md +++ b/pages/blog/2024/01/blanktar-renewal.md @@ -83,7 +83,7 @@ Exif情報は[dsprea/go-exif](https://github.com/dsoprea/go-exif)を使って読 ビルド時間の大半は画像の生成が占めていたので、一度生成した画像はキャッシュするようにしました。 -![画像ビルドの流れ。キャッシュディレクトリにキャッシュがあればそれをコピーして使用日時を更新する。キャッシュが見つからなければ新たに生成して、キャッシュディレクトリと出力先ディレクトリの両方に保存する。最後にしばらく使っていないキャッシュを消して終了。](/blog/2024/01/blanktar-renewal/image-building-flow.svg "601x689") +![画像ビルドの流れ。キャッシュディレクトリにキャッシュがあればそれをコピーして使用日時を更新する。キャッシュが見つからなければ新たに生成して、キャッシュディレクトリと出力先ディレクトリの両方に保存する。最後にしばらく使っていないキャッシュを消して終了。](/blog/2024/01/blanktar-renewal/image-building-flow.svg "601x689 CC-BY")