diff --git a/Gemfile b/Gemfile
index 5e121b6..37ba7a5 100644
--- a/Gemfile
+++ b/Gemfile
@@ -46,6 +46,9 @@ gem "sassc-rails"
# Use CoffeeScript to process JS
gem "coffee-rails"
+# Kramdown gem to convert Markdown to HTML
+gem "kramdown", "~> 2.4"
+
# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
# gem "image_processing", "~> 1.2"
diff --git a/Gemfile.lock b/Gemfile.lock
index ec5fbe2..7cc99b5 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -111,6 +111,8 @@ GEM
jbuilder (2.11.5)
actionview (>= 5.0.0)
activesupport (>= 5.0.0)
+ kramdown (2.4.0)
+ rexml
loofah (2.18.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
@@ -238,6 +240,7 @@ DEPENDENCIES
debug
importmap-rails
jbuilder
+ kramdown (~> 2.4)
puma (~> 6.1)
rails (~> 7.0)
sassc-rails
diff --git a/app/assets/stylesheets/lumbridge.sass.erb b/app/assets/stylesheets/lumbridge.sass.erb
index 18cd763..b3c4490 100644
--- a/app/assets/stylesheets/lumbridge.sass.erb
+++ b/app/assets/stylesheets/lumbridge.sass.erb
@@ -34,6 +34,7 @@ hr
margin: 0
padding: 0
background: white
+ box-shadow: 0px 80px 50px -30px rgba(0, 0, 0, 0.15)
// header
@@ -135,13 +136,21 @@ hr
li
padding: 15px 20px 0
border: 2px solid #bbb
+ border-radius: 8px
+ box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2)
.post-title
margin-bottom: 3px
+ text-decoration: underline
.post-body
margin-bottom: 0
+#post-header
+ #post-author
+ color: #999
+ font-style: italic
+
// footer section
#footer
diff --git a/app/controllers/blog_controller.rb b/app/controllers/blog_controller.rb
new file mode 100644
index 0000000..9f35402
--- /dev/null
+++ b/app/controllers/blog_controller.rb
@@ -0,0 +1,9 @@
+class BlogController < ApplicationController
+ def index
+ @posts = Post.all()
+ end
+
+ def show
+ @post = Post.find(params[:id])
+ end
+end
diff --git a/app/models/post.rb b/app/models/post.rb
new file mode 100644
index 0000000..cffb445
--- /dev/null
+++ b/app/models/post.rb
@@ -0,0 +1,7 @@
+class Post < ApplicationRecord
+
+ def renderBody()
+ Kramdown::Document.new(self.body).to_html()
+ end
+
+end
diff --git a/app/views/blog/index.html.erb b/app/views/blog/index.html.erb
new file mode 100644
index 0000000..feebf3c
--- /dev/null
+++ b/app/views/blog/index.html.erb
@@ -0,0 +1,14 @@
+
Bit Goblin Blog
+
+<% if @posts.length > 0 %>
+
+ <% @posts.each do |post| %>
+ -
+
+
<%= truncate(raw(post.renderBody()), :length => 300, :escape => false) %>
+
+ <% end %>
+
+<% else %>
+ I'm sorry, there don't appear to be any blog posts published at this time. Check back later!
+<% end %>
diff --git a/app/views/blog/show.html.erb b/app/views/blog/show.html.erb
new file mode 100644
index 0000000..c4bd415
--- /dev/null
+++ b/app/views/blog/show.html.erb
@@ -0,0 +1,8 @@
+
+
+
+ <%= raw(@post.renderBody()) %>
+
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index 3e56fbd..53cc0be 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -23,6 +23,7 @@