ggdgsdbsdbbb / repo / file_template.v
30 lines · 28 sloc · 605 bytes · 71bef066c0a4bd4f1656298901ee10258e79415d
Raw
1module main
2
3import veb
4import strings
5
6fn (f File) format_commit_message() veb.RawHtml {
7 msg := f.last_msg
8 if msg.index_u8(`#`) == -1 {
9 return veb.RawHtml(msg)
10 }
11 mut b := strings.new_builder(msg.len + 32)
12 mut i := 0
13 for i < msg.len {
14 if msg[i] == `#` && i + 1 < msg.len && msg[i + 1].is_digit() {
15 start := i
16 i += 2
17 for i < msg.len && msg[i].is_digit() {
18 i++
19 }
20 issue_id := msg[start..i]
21 b.write_string('<a class="issue-id-anchor" href="#">')
22 b.write_string(issue_id)
23 b.write_string('</a>')
24 continue
25 }
26 b.write_u8(msg[i])
27 i++
28 }
29 return veb.RawHtml(b.str())
30}
31