aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/guff.cr30
-rw-r--r--src/views/blog/list-item.ecr3
-rw-r--r--src/views/blog/list.ecr25
3 files changed, 56 insertions, 2 deletions
diff --git a/src/guff.cr b/src/guff.cr
index 2343d12..9791288 100644
--- a/src/guff.cr
+++ b/src/guff.cr
@@ -2122,8 +2122,33 @@ module Guff
ECR.def_to_s("src/views/logout-page.ecr")
end
+ class BlogListItemView < HTMLView
+ def initialize(context : Context, @post_id : Int64)
+ super(context)
+ end
+
+ ECR.def_to_s("src/views/blog/list-item.ecr")
+ end
+
+ #
+ # TODO: add y/m/d/page
+ #
class BlogListView < HTMLView
- ECR.def_to_s("src/views/blog-list.ecr")
+ TITLE = "Blog List"
+
+ def initialize(context : Context, @post_ids : Array(Int64))
+ super(context)
+ end
+
+ def posts
+ String.build do |io|
+ @post_ids.each do |id|
+ BlogListItemView.new(@context, id).to_s(io)
+ end
+ end
+ end
+
+ ECR.def_to_s("src/views/blog/list.ecr")
end
end
@@ -2599,7 +2624,8 @@ module Guff
context.response.headers["x-frame-options"] = "SAMEORIGIN"
context.response.content_type = "text/html; charset=utf-8"
context.response.status_code = 200
- context.response << "blog list: ids = #{ids.join(", ")}"
+
+ Views::BlogListView.new(@context, ids).to_s(context.response)
else
# unknown page
call_next(context)
diff --git a/src/views/blog/list-item.ecr b/src/views/blog/list-item.ecr
new file mode 100644
index 0000000..13131e0
--- /dev/null
+++ b/src/views/blog/list-item.ecr
@@ -0,0 +1,3 @@
+<div class='post'>
+ id: <%= @post_id %>
+</div>
diff --git a/src/views/blog/list.ecr b/src/views/blog/list.ecr
new file mode 100644
index 0000000..d0a35ca
--- /dev/null
+++ b/src/views/blog/list.ecr
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang='en-US'>
+ <head>
+ <meta charset="utf-8"/>
+ <title><%=
+ h(TITLE)
+ %></title>
+
+ <%
+ # TODO: add theme styles
+ %>
+ </head>
+
+ <body>
+ <b>blog list</b>
+
+ <div class='posts'><%=
+ posts
+ %></div><!-- posts -->
+ </body>
+
+ <%
+ # TODO: add theme scripts
+ %>
+</html>