From 646fdccac5f0ec506b80ed532baa4012965b682e Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Sat, 22 Jun 2024 03:40:56 +0530 Subject: Date Utils, Cosmetic and Implementation Changes * Adds Utils method for formatting date * Adds Published at to the posts page * Adds new logo, removes font dependency * Renames Posts link to Blog --- background.svg | 66 +++++++++++++++++++++++++++++++++++++++++++ logo.svg | 58 +++++++++++++++++++++++++++++++++++++ public/css/styles.css | 40 ++++++++++++++++++-------- public/fonts/VGA437.ttf | Bin 81192 -> 0 bytes public/images/background.png | Bin 0 -> 1342 bytes public/images/logo.png | Bin 0 -> 13393 bytes src/indrajith-dev-crystal.cr | 13 ++++++++- src/utils/utils.cr | 47 ++++++++++++++++++++++++++++++ src/views/blog.ecr | 0 src/views/layout.ecr | 36 +++++++++++++++-------- 10 files changed, 237 insertions(+), 23 deletions(-) create mode 100644 background.svg create mode 100644 logo.svg delete mode 100644 public/fonts/VGA437.ttf create mode 100644 public/images/background.png create mode 100644 public/images/logo.png create mode 100644 src/utils/utils.cr create mode 100644 src/views/blog.ecr diff --git a/background.svg b/background.svg new file mode 100644 index 0000000..c29d4f2 --- /dev/null +++ b/background.svg @@ -0,0 +1,66 @@ + + + + diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..1a59c7f --- /dev/null +++ b/logo.svg @@ -0,0 +1,58 @@ + + + + diff --git a/public/css/styles.css b/public/css/styles.css index 1c19cff..f40e376 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -1,8 +1,3 @@ -@font-face { - font-family: "VGA437"; - src: url("/fonts/VGA437.ttf"); -} - :root { --body-bg-image: url("/images/aqua.gif"); } @@ -20,7 +15,10 @@ body { } body { - font-family: Verdana; + /* font-family: Verdana; */ + font-family: "Lato", sans-serif; + font-weight: 400; + font-style: normal; font-size: 15px; max-width: 900px; margin: auto; @@ -87,7 +85,6 @@ footer ul>li>p { .logo { text-decoration: none; - font-family: "VGA437", sans-serif; font-size: 220%; color: #000000; } @@ -170,7 +167,7 @@ table td { right: 0; bottom: 0; background: #000000; - height: 2px; + height: 1px; -webkit-transform: translateY(4px); transform: translateY(4px); -webkit-transition-property: transform; @@ -253,7 +250,28 @@ p.first-letter::first-letter { overflow: hidden; } -.four-o-four, .f-o-f-message { - display: flex; - justify-content: center; +.four-o-four, +.f-o-f-message { + display: flex; + justify-content: center; +} + + + +th { + background-color: #3b3b3b; + color: white; + border: 1px solid #000000; +} + +tr:nth-child(even) { + background-color: #f2f2f2; +} + +tr:nth-child(odd) { + background-color: #f8f8f8 +} + +.text-lightish-50 .hvr-underline-reveal.links { + text-decoration: underline; } \ No newline at end of file diff --git a/public/fonts/VGA437.ttf b/public/fonts/VGA437.ttf deleted file mode 100644 index f5cbfc0..0000000 Binary files a/public/fonts/VGA437.ttf and /dev/null differ diff --git a/public/images/background.png b/public/images/background.png new file mode 100644 index 0000000..403fb6a Binary files /dev/null and b/public/images/background.png differ diff --git a/public/images/logo.png b/public/images/logo.png new file mode 100644 index 0000000..a327857 Binary files /dev/null and b/public/images/logo.png differ diff --git a/src/indrajith-dev-crystal.cr b/src/indrajith-dev-crystal.cr index f5ddabd..f49f134 100644 --- a/src/indrajith-dev-crystal.cr +++ b/src/indrajith-dev-crystal.cr @@ -2,6 +2,8 @@ require "kemal" require "crest" require "json" require "dotenv" +require "./utils/utils" +require "time" Dotenv.load @@ -13,6 +15,7 @@ module Indrajith::Dev::Crystal macro page_renderer(filename, title) page_title = {{title}} + published_at="" render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr" end @@ -41,6 +44,11 @@ module Indrajith::Dev::Crystal page_renderer "contact", "Contact" end + get "/blog" do |context| + context.response.content_type = "text/html" + page_renderer "blog", "Blog" + end + get "/posts" do |context| begin site = Crest::Resource.new("#{STRAPI_URL}") @@ -80,7 +88,7 @@ module Indrajith::Dev::Crystal get "/post/:slug" do |context| begin slug = context.params.url["slug"] - site = Crest::Resource.new("http://localhost:1337") + site = Crest::Resource.new("#{STRAPI_URL}") response = site.get("/api/posts", params: { @@ -94,6 +102,9 @@ module Indrajith::Dev::Crystal post_item = data[0] post_attribute = post_item["attributes"] content = post_attribute["post_content"] + published_raw_time = post_attribute["publishedAt"].as_s + published_time = Time.parse(published_raw_time, "%Y-%m-%dT%H:%M:%S.%3NZ", Time::Location.local) + published_at = format_date(published_time) page_title = post_attribute["post_title"] render "src/views/layout.ecr" rescue ex diff --git a/src/utils/utils.cr b/src/utils/utils.cr new file mode 100644 index 0000000..7b214ce --- /dev/null +++ b/src/utils/utils.cr @@ -0,0 +1,47 @@ + +def format_date(time : Time) + month = get_month(time.month) + "#{month} #{time.day}, #{time.year}" +end + +def format_date_with_time(time : Time) + month = get_month(time.month) + "#{month} #{time.day}, #{time.year} #{time.hour}:#{time.minute} #{am_or_pm(time.hour)}" +end + +def get_month(month) + case month + when 1 + "January" + when 2 + "February" + when 3 + "March" + when 4 + "April" + when 5 + "May" + when 6 + "June" + when 7 + "July" + when 8 + "August" + when 9 + "September" + when 10 + "October" + when 11 + "November" + when 12 + "December" + end +end + +def am_or_pm(hour) + if hour > 12 + "PM" + else + "AM" + end +end \ No newline at end of file diff --git a/src/views/blog.ecr b/src/views/blog.ecr new file mode 100644 index 0000000..e69de29 diff --git a/src/views/layout.ecr b/src/views/layout.ecr index abb2dae..763f1cb 100644 --- a/src/views/layout.ecr +++ b/src/views/layout.ecr @@ -7,28 +7,37 @@ + + +