From 4edccf9a2504e8798df160e04a0820a7256f82b1 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sat, 25 Jan 2025 19:16:32 +0100 Subject: Restructure Views library. --- lib/views/layouts.ml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/views/layouts.ml (limited to 'lib/views/layouts.ml') diff --git a/lib/views/layouts.ml b/lib/views/layouts.ml new file mode 100644 index 0000000..d9def3c --- /dev/null +++ b/lib/views/layouts.ml @@ -0,0 +1,45 @@ +open Dream_html +open HTML + +let header = + div [] + [ + h1 [] [ txt "ogit" ]; + h2 [] [ txt "A mobile-friendly Git repository viewer" ]; + ] + +let topnav = + nav + [ id "top" ] + [ + ul [] + [ + li [] [ a [ href "/" ] [ txt "Home" ] ]; + li [] [ a [ href "/" ] [ txt "Refs" ] ]; + li [] [ a [ href "/" ] [ txt "Log" ] ]; + li [] [ a [ href "/" ] [ txt "Tree" ] ]; + li [] [ a [ href "/" ] [ txt "Commit" ] ]; + li [] [ a [ href "/" ] [ txt "Diff" ] ]; + ]; + ] + +let footer name = + let today = Unix.localtime (Unix.time ()) in + let year = string_of_int (today.Unix.tm_year + 1900) in + let space = " " in + let footer_text = String.concat space [ "©"; year; name ] in + footer [] [ txt "%s" footer_text ] + +let application ?(page_title = "ogit") ?(head_content = null []) ~main_content + () = + html [] + [ + head [] [ title [] "%s" page_title; head_content ]; + body [] + [ + header; + topnav; + div [ id "main" ] [ main_content ]; + footer "Marius PETER"; + ]; + ] -- cgit v1.2.3