From afe686e6bab1d4b6a85b1f5c610f57fcf1a72d74 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Mon, 9 Jun 2025 18:09:55 +0200 Subject: Implement blob display. --- lib/views.ml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'lib/views.ml') diff --git a/lib/views.ml b/lib/views.ml index e1056b7..029e311 100644 --- a/lib/views.ml +++ b/lib/views.ml @@ -199,10 +199,22 @@ module Repo = struct content; } - let blob repo blob = + let file repo blob = let title = Printf.sprintf "%s" repo in + let to_numbered_line number line = + let n = number + 1 in + HTML. + [ + a [ id "%d" n; class_ "line-anchor"; href "#%d" n ] [ txt "%d" n ]; + span [ class_ "line" ] [ txt "\t%s\n" line ]; + ] + in + let formatted_blob = + String.split_on_char '\n' blob.content + |> List.mapi to_numbered_line |> List.flatten + in let content = - HTML.[ h3 [] [ txt "Blob" ]; p [] [ txt "%s" blob.content ] ] + HTML.[ h3 [] [ txt "File" ]; div [ id "blob" ] formatted_blob ] in Page.render ~page_title:(page_title repo) { -- cgit v1.2.3