演習課題「レビューログ:Markdownに対応しよう」
ここでは、マンガや動画などの感想を書き込むレビューログを作っています。
右の環境には、MySQLで「mylog」というデータベースとSinatraを使用したWebアプリケーションの雛形が用意してあります。
このうちのreview.rbとshow.erbを修正して、レビュー詳細画面をMarkdown対応にしてください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#05:Markdownで表示しよう
ここでは、メモの内容をMarkdownで記述できるようにします。そこで、RubyでMarkdownを扱う「redcarpet」(レッドカーペット)を使ってみましょう。
Markdownは、見出しや箇条書きなどをテキストで表現する簡易記法です。簡単な記号の組み合わせで、HTMLの見出しやリンク・箇条書きなどを表現することができます。
### 見出し
# h1 <h1>の見出し
## h2 <h2>の見出し
### h3 <h3>の見出し
### 段落
通常の文は、p タグで囲まれる。
空白行を入れると、段落を分離。
### 箇条書き
- Sinatra
- ActiveRecord
- Redcarpet
### リンク
[paiza]
https://paiza.jp/
### 画像
![paiza](/image/neko.png)
# メモ帳アプリ:Markdownに対応する
require 'mysql2'
require 'active_record'
require 'sinatra'
require 'sinatra/reloader'
require 'erb'
require 'redcarpet'
ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection(:development)
class Post < ActiveRecord::Base
end
get '/' do
@posts = Post.all
erb :index
end
get '/show/:id' do
@markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
@post = Post.find(params['id'])
erb :show
end
/views/show.erb<p>タイトル:<%= @post.title %></p>
<%= @markdown.render(@post.content) %>
<p><a href='/'>一覧に戻る</a> | 編集 | 削除</p>
- [Markdown記法 サンプル集 - Qiita]
https://qiita.com/tbpgr/items/989c6badefff69377da7
- [Markdown - Wikipedia]
https://ja.wikipedia.org/wiki/Markdown
- [Redcarpet]
https://github.com/vmg/redcarpet
- [Rubyで動くmarkdownパーサー|Redcarpet - むかぁ~ どっと こむ]
http://mukaer.com/archives/2013/06/03/rubymarkdownred/