mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
parent
7afac3f1ad
commit
05e23bd55c
1 changed files with 12 additions and 8 deletions
|
@ -91,15 +91,19 @@ func (f textFilter) Draw(dst draw.Image, src image.Image, options *gift.Options)
|
|||
y := f.y
|
||||
d.Dot = fixed.P(f.x, f.y)
|
||||
|
||||
// Draw text and break line at max width
|
||||
parts := strings.Fields(f.text)
|
||||
for _, str := range parts {
|
||||
strWith := font.MeasureString(face, str)
|
||||
if (d.Dot.X.Ceil() + strWith.Ceil()) >= maxWidth {
|
||||
y = y + fontHeight + f.linespacing
|
||||
d.Dot = fixed.P(f.x, y)
|
||||
// Draw text line by line, breaking each line at the maximum width.
|
||||
f.text = strings.ReplaceAll(f.text, "\r", "")
|
||||
for _, line := range strings.Split(f.text, "\n") {
|
||||
for _, str := range strings.Fields(line) {
|
||||
strWidth := font.MeasureString(face, str)
|
||||
if (d.Dot.X.Ceil() + strWidth.Ceil()) >= maxWidth {
|
||||
y = y + fontHeight + f.linespacing
|
||||
d.Dot = fixed.P(f.x, y)
|
||||
}
|
||||
d.DrawString(str + " ")
|
||||
}
|
||||
d.DrawString(str + " ")
|
||||
y = y + fontHeight + f.linespacing
|
||||
d.Dot = fixed.P(f.x, y)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue