aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIndrajith K L2024-06-21 00:43:41 +0530
committerIndrajith K L2024-06-21 02:38:36 +0530
commitf7275309ad3ec062ebed915a097766daf126813b (patch)
tree12fa7deedd4e6332b28e2c0b7dc1b8b17fc1cde4 /src
parent11c92db4208efb6381a2fd65bcc4de427d1f21f6 (diff)
downloadindrajith-dev-crystal-f7275309ad3ec062ebed915a097766daf126813b.tar.gz
indrajith-dev-crystal-f7275309ad3ec062ebed915a097766daf126813b.tar.bz2
indrajith-dev-crystal-f7275309ad3ec062ebed915a097766daf126813b.zip
Basic Home Page Implementation
* Moves assets from old website * Basic layout based on old website * Move home page from old website
Diffstat (limited to 'src')
-rw-r--r--src/indrajith-dev-crystal.cr21
-rw-r--r--src/views/home.ecr23
-rw-r--r--src/views/layout.ecr53
3 files changed, 95 insertions, 2 deletions
diff --git a/src/indrajith-dev-crystal.cr b/src/indrajith-dev-crystal.cr
index a7a08b6..28948cf 100644
--- a/src/indrajith-dev-crystal.cr
+++ b/src/indrajith-dev-crystal.cr
@@ -3,8 +3,25 @@ require "kemal"
module Indrajith::Dev::Crystal
VERSION = "0.1.0"
- get "/" do
- "Hello World!"
+ macro page_renderer(filename)
+ render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr"
+ end
+
+ def self.htmx_request?(context)
+ context.request.headers.has_key?("HX-Request") ||
+ context.request.headers.has_key?("Hx-Request") ||
+ context.request.headers.has_key?("hx-request")
+ end
+
+ get "/" do |context|
+ if htmx_request?(context)
+ partial_content = render("src/views/home.ecr")
+ context.response.content_type = "text/html"
+ context.response.print partial_content
+ else
+ context.response.content_type = "text/html"
+ page_renderer "home"
+ end
end
Kemal.run
diff --git a/src/views/home.ecr b/src/views/home.ecr
new file mode 100644
index 0000000..5d7eb54
--- /dev/null
+++ b/src/views/home.ecr
@@ -0,0 +1,23 @@
+<div class="text-center">
+ <div>
+ <p class="first-letter">
+ "Hello Friend!! My name is Indrajith K L." I'm a web developer, hobbyist game developer from India, working as a front-end developer.
+ This site is where I write about my fun side projects, R&amp;D's, random thoughts, game development etc. Since you are here why don't you read some <a href="/posts" class="text-main-cardheading font-bold">posts</a>.
+ </p>
+ </div>
+</div>
+
+<div>
+ <div>
+ <h4>Books I'm reading now</h4>
+ <div id="gr_grid_widget_1676363812"></div>
+ </div>
+ <h4>Recent Posts</h4>
+ <ul>
+ <!--
+ li -> posts
+ -->
+ </ul>
+</div>
+<script src="https://www.goodreads.com/review/grid_widget/162656738.Indrajith's%20currently-reading%20book%20montage?cover_size=medium&hide_link=&hide_title=true&num_books=20&order=a&shelf=currently-reading&sort=date_added&widget_id=1676363812" type="text/javascript" charset="utf-8"></script>
+
diff --git a/src/views/layout.ecr b/src/views/layout.ecr
new file mode 100644
index 0000000..f16eefc
--- /dev/null
+++ b/src/views/layout.ecr
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>{indrajith.dev}</title>
+ <script src="https://unpkg.com/htmx.org@1.9.12"></script>
+ <link rel="stylesheet" href="/css/styles.css">
+</head>
+<body>
+ <header class="header">
+ <div class="logo-container">
+ <a class="logo" href="/">{indrajith.dev}</a>
+ </div>
+ <h4 class="slogan">(Software is Art)</h4>
+ <nav>
+ <ul>
+ <li><a href="/" hx-get="/" hx-target="#content" hx-push-url="true" class="hvr-underline-reveal" id="home" class="links">home</a></li>
+ <li><a href="/posts" hx-get="/post" hx-target="#content" hx-push-url="true" class="hvr-underline-reveal" id="posts" class="links">posts</a></li>
+ <li><a href="/timeline" hx-get="/timeline" hx-target="#content" hx-push-url="true" class="hvr-underline-reveal" id="cv" class="links">timeline</a></li>
+ <li><a href="/about" hx-get="/about" hx-target="#content" hx-push-url="true" class="hvr-underline-reveal" id="about" class="links">about</a></li>
+ <li><a href="https://git.indrajith.dev" class="hvr-underline-reveal" id="cv" class="links">git</a></li>
+ <li><a href="/contact" hx-get="/contact" hx-target="#content" hx-push-url="true" id="cv" class="links hvr-underline-reveal">contact</a></li>
+ <li><a href="/feed.xml" id="cv" class="links hvr-underline-reveal">feed</a></li>
+ </ul>
+ </nav>
+ <hr>
+ </header>
+ <main id="content">
+ <%= content %>
+ </main>
+ <footer>
+ <hr>
+ <ul>
+ <li>
+ <p>&copy; 2024 Indrajith K L </p>
+ </li>
+ </ul>
+ <img src="/images/indrajith.dev.gif" class="etyone" alt="">
+ </footer>
+ <script>htmx.config.getCacheBusterParam = true</script>
+ <script>
+ (function(){
+ const currentLocation = location.pathname;
+ const navs = ["about","posts","cv"];
+ const currentNav = navs.find(nav=>currentLocation.includes(nav));
+ if (currentNav) {
+ document.getElementById(currentNav).parentElement.classList.add("text-lightish-50");
+ }
+ })();
+ </script>
+</body>
+</html>