Started working on a blog for the website; adjusted some styles
This commit is contained in:
parent
771db2dae1
commit
a9c2737713
3
Gemfile
3
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"
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
9
app/controllers/blog_controller.rb
Normal file
9
app/controllers/blog_controller.rb
Normal file
@ -0,0 +1,9 @@
|
||||
class BlogController < ApplicationController
|
||||
def index
|
||||
@posts = Post.all()
|
||||
end
|
||||
|
||||
def show
|
||||
@post = Post.find(params[:id])
|
||||
end
|
||||
end
|
7
app/models/post.rb
Normal file
7
app/models/post.rb
Normal file
@ -0,0 +1,7 @@
|
||||
class Post < ApplicationRecord
|
||||
|
||||
def renderBody()
|
||||
Kramdown::Document.new(self.body).to_html()
|
||||
end
|
||||
|
||||
end
|
14
app/views/blog/index.html.erb
Normal file
14
app/views/blog/index.html.erb
Normal file
@ -0,0 +1,14 @@
|
||||
<h1 class="u-text-center">Bit Goblin Blog</h1>
|
||||
|
||||
<% if @posts.length > 0 %>
|
||||
<ul id="post-list">
|
||||
<% @posts.each do |post| %>
|
||||
<li>
|
||||
<h4 class="post-title"><a href="/blog/post/<%= post.id %>"><%= post.title %></a></h4>
|
||||
<p class="post-body"><%= truncate(raw(post.renderBody()), :length => 300, :escape => false) %></p>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% else %>
|
||||
<p>I'm sorry, there don't appear to be any blog posts published at this time. Check back later!</p>
|
||||
<% end %>
|
8
app/views/blog/show.html.erb
Normal file
8
app/views/blog/show.html.erb
Normal file
@ -0,0 +1,8 @@
|
||||
<header id="post-header">
|
||||
<h1 id="post-title" class="u-text-center"><%= @post.title %></h1>
|
||||
<h4 id="post-author" class="u-text-center">written by <%= @post.author %></h4>
|
||||
</header>
|
||||
|
||||
<div class="post-body">
|
||||
<%= raw(@post.renderBody()) %>
|
||||
</div>
|
@ -23,6 +23,7 @@
|
||||
<nav id="navigation">
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/support">Support</a></li>
|
||||
<li><a href="/contact">Contact</a></li>
|
||||
</ul>
|
||||
|
@ -3,4 +3,7 @@ Rails.application.routes.draw do
|
||||
|
||||
get "/contact", to: "welcome#contact"
|
||||
get "/support", to: "welcome#support"
|
||||
|
||||
get "/blog", to: "blog#index"
|
||||
get "/blog/post/:id", to: "blog#show"
|
||||
end
|
||||
|
11
db/migrate/20230316173633_create_posts.rb
Normal file
11
db/migrate/20230316173633_create_posts.rb
Normal file
@ -0,0 +1,11 @@
|
||||
class CreatePosts < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
create_table :posts do |t|
|
||||
t.string :title
|
||||
t.string :author
|
||||
t.text :body
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
22
db/schema.rb
generated
Normal file
22
db/schema.rb
generated
Normal file
@ -0,0 +1,22 @@
|
||||
# This file is auto-generated from the current state of the database. Instead
|
||||
# of editing this file, please use the migrations feature of Active Record to
|
||||
# incrementally modify your database, and then regenerate this schema definition.
|
||||
#
|
||||
# This file is the source Rails uses to define your schema when running `bin/rails
|
||||
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
||||
# be faster and is potentially less error prone than running all of your
|
||||
# migrations from scratch. Old migrations may fail to apply correctly if those
|
||||
# migrations use external dependencies or application code.
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[7.0].define(version: 2023_03_16_173633) do
|
||||
create_table "posts", force: :cascade do |t|
|
||||
t.string "title"
|
||||
t.string "author"
|
||||
t.text "body"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
end
|
||||
|
||||
end
|
11
test/fixtures/posts.yml
vendored
Normal file
11
test/fixtures/posts.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
title: MyString
|
||||
author: MyString
|
||||
body: MyText
|
||||
|
||||
two:
|
||||
title: MyString
|
||||
author: MyString
|
||||
body: MyText
|
7
test/models/post_test.rb
Normal file
7
test/models/post_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require "test_helper"
|
||||
|
||||
class PostTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
Loading…
Reference in New Issue
Block a user