From dfd1b57a61c321676f05cfe90a5c365fe4655fa1 Mon Sep 17 00:00:00 2001 From: rf Date: Sat, 24 Sep 2022 12:27:10 -0500 Subject: [PATCH] fixup html, add rss feed --- insert-posts.sh | 2 ++ rawleydotxyz.ml | 4 ++- render/render.ml | 81 +++++++++++++++++++++++++++++++++++++---------- render/render.mli | 2 ++ 4 files changed, 71 insertions(+), 18 deletions(-) diff --git a/insert-posts.sh b/insert-posts.sh index 1855b54..71d3f70 100755 --- a/insert-posts.sh +++ b/insert-posts.sh @@ -66,6 +66,8 @@ for file in $(ls "$BLOG_DIR/posts"); do slug=$(sed -n '2p' $target_file | tr -d '\n') title=$(sed -n '3p' $target_file | tr -d '\n') content=$(sed -n '4,$p' $target_file | tr -d '\n') + # Cool little sed to escape html + content=$(sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'"'"'/\'/g' "$content") insert_post "$date" "$slug" "$title" "$content" done diff --git a/rawleydotxyz.ml b/rawleydotxyz.ml index d9bebc7..392be5d 100644 --- a/rawleydotxyz.ml +++ b/rawleydotxyz.ml @@ -21,7 +21,9 @@ let () = Dream.get "/philosophy" @@ Dream.from_filesystem "html" "philosophy.html"; Dream.get "/web-ring" @@ Dream.from_filesystem "html" "web-ring.html"; Dream.get "/blog" Render.render_blog_index; - Dream.scope "/blog" [Dream.origin_referrer_check] [ + Dream.scope "/blog" [] [ + Dream.get "/rss.xml" Render.render_rss_feed; Dream.get "/:post" Render.render_blog_post ]; + Dream.get "/**" (fun _ -> Render.handle_not_found ()) ] diff --git a/render/render.ml b/render/render.ml index 01c1ce3..1d958a4 100644 --- a/render/render.ml +++ b/render/render.ml @@ -2,18 +2,15 @@ open Database open Lwt module Render = struct - let not_found_template = "404 Not found" - let error_template = "500 Server Error" - let header_template = - {eos| - + {eos| rawley.xyz + @@ -36,12 +33,10 @@ module Render = struct -
- |eos} +
|eos} let footer_template = - {eos| -
+ {eos|
- - |eos} + |eos} + + let not_found_template = + Printf.sprintf "%s %s %s" + header_template + "

404 Not found

" + footer_template + + let error_template = + Printf.sprintf "%s %s %s" + header_template + "

500 Server Error

" + footer_template let render_page content = Printf.sprintf @@ -69,16 +75,27 @@ module Render = struct let generate_link (p : BlogPost.t) = Printf.sprintf - {eos| -