SlideShare una empresa de Scribd logo
1 de 15
Rails+Markdownでなにかつくる
ーStep1:Markdownエディタ Step2:Markdown メモ
Ruby/ Ruby on Railsビギナーズ勉強会 第8回
2015/10/24 平田智子
about me
• 平田智子(ひらたともこ)
• 新潟県生まれ、大阪出身です
• 普段はvb.netで開発しています
• web勉強歴はもうすぐで1年
• Facebook:hirata.tomoko
• blog:http://tomoko-tsubasa.hateblo.jp/
agenda
•Step1. Markdownエディタ
• RoRビギナーズ勉強会 第7回
•Step2. Markdownメモ
• RoRビギナーズ勉強会 第8回
•Step3. Markdownからスライド作成
• RoRビギナーズ勉強会 第9回(予定)
Markdownとは
Markdown(マークダウン)は、文書を記述するための軽量マークアップ言語のひとつ
である。
もとはプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発され
た。
現在ではHTMLのほかパワーポイント形式やLaTeX形式のファイルへ変換するソフト
ウェア(コンバータ)も開発されている。
[Markdown - ウィキペディア](https://ja.wikipedia.org/wiki/Markdown )
簡単な設計
View
Controller
Model
Angularjs
RubyonRails
Step 1 marked.js
Step 2 RedCarpet
使用するMarkdownパーサー
• Redcarpet
• marked.js
Redcarpet is a Ruby library for Markdown processing that
smells like butterflies and popcorn.
A full-featured markdown parser and compiler, written in
JavaScript. Built for speed.
参考にしたサイト
• Step1 参考
• Step2 参考
AngularJSでmarkdownのリアルタイムプレビュー機能を軽く
作ってみる Link
Rails Markdownサンプルアプリ Link
rails generateで大枠を作成します。
rails _4.1.1_ new note_md
cd note_md
rails g scaffold Page body:text
rake db:migrate
必要なgem,jsを入れます
• Gemfile
• vendorassetsjavascripts
• appassetsjavascriptsapplication.js
gem "redcarpet"," ~> 2.3.0"
gem "marked-rails"
angular.min.js
angular.min.js.map
marked.js
highlight-8.8.0.js
実際は他にCSS系のgemとかもいれます
//= require angular.min
//= require app
//= require marked
//= require highlight-8.8.0
AngularJSを使う準備をします
• appassetsjavascriptsapp.coffee
app= angular.module('sampleApp', [])
Redcarpetを使う準備をします
• apphelpersapplication_helper.rb
module ApplicationHelper
@@markdown = Redcarpet::Markdown.new
Redcarpet::Render::HTML,
autolink: true,
space_after_headers: true,
no_intra_emphasis: true,
fenced_code_blocks: true,
tables: true,
hard_wrap: true,
xhtml: true,
lax_html_blocks: true,
strikethrough: true
def markdown(text)
@@markdown.render(text).html_safe
end
end
Markdownで表示できるようにします
• appviewspagesshow.html.erb
• appviewspages_form.html.erb
<% = markdown @page.body %>
<%= f.text_area :body, "ng-model" => "body" , "ng-change" =>
"pars e Markdown()" %>
<div class='right' id='previ ew'></div >
表示する部分
入力する部分
リアルタイムで表示する部分
リアルタイムプレビュー用のjsを書きます
(angularjs)
• appassetsjavascriptscontrollersparsedMarkdownCtrl.coffee
angular.module('sampleApp').controller "parsedMarkdownCtrl" ,
($scope) ->
$scope.init= ->
$scope.body= $("#page_body").val()
$scope.parseMarkdown()
$scope.parseMarkdown= ->
marked.setOptions langPrefix: ''
$("#preview").html(marked($scope.body))
$('#preview pre code').each (i, e) ->
hljs.highlightBlock e, e.className
return
Demo
今後の課題
①RailsとAngularを使うときはすみ分けを考える必要
がある(らしい)
②レイアウトをほとんど編集していないので貧弱
③一覧ページに表示させる、各メモのタイトルも登録で
きるようにしたい

Más contenido relacionado

La actualidad más candente

Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
Kanako Kobayashi
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
Kanako Kobayashi
 
Rubyのバージョン(鳥取ruby会)
Rubyのバージョン(鳥取ruby会)Rubyのバージョン(鳥取ruby会)
Rubyのバージョン(鳥取ruby会)
Kei Matsunaga
 

La actualidad más candente (20)

片手間JS on Rails
片手間JS on Rails片手間JS on Rails
片手間JS on Rails
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
Ruby on Rails の特徴とそのエコシステム
Ruby on Rails の特徴とそのエコシステムRuby on Rails の特徴とそのエコシステム
Ruby on Rails の特徴とそのエコシステム
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
 
いわみくとMeetup第15回
いわみくとMeetup第15回いわみくとMeetup第15回
いわみくとMeetup第15回
 
Rubyのバージョン(鳥取ruby会)
Rubyのバージョン(鳥取ruby会)Rubyのバージョン(鳥取ruby会)
Rubyのバージョン(鳥取ruby会)
 
railsはじめの一歩
railsはじめの一歩railsはじめの一歩
railsはじめの一歩
 
BootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみたBootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみた
 
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
 
Refrection of kawasaki.rb
Refrection of kawasaki.rbRefrection of kawasaki.rb
Refrection of kawasaki.rb
 
Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
 
♡PHPが恋しい話♡
♡PHPが恋しい話♡♡PHPが恋しい話♡
♡PHPが恋しい話♡
 
よこはまクラウド勉強会 01
よこはまクラウド勉強会 01よこはまクラウド勉強会 01
よこはまクラウド勉強会 01
 

Similar a Rails+Markdownでなにかつくる

Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)
masayoshi takahashi
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
yamanekko
 
Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)
masayoshi takahashi
 

Similar a Rails+Markdownでなにかつくる (20)

nomlab_okayamaruby_slide
nomlab_okayamaruby_slidenomlab_okayamaruby_slide
nomlab_okayamaruby_slide
 
Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Railsの今昔
Railsの今昔Railsの今昔
Railsの今昔
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン
 
私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
 
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
 
Trunk0125資料
Trunk0125資料Trunk0125資料
Trunk0125資料
 
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
 
Ruby Introduction
Ruby IntroductionRuby Introduction
Ruby Introduction
 
あなたもなれる!Linaroコミッターへの道
あなたもなれる!Linaroコミッターへの道あなたもなれる!Linaroコミッターへの道
あなたもなれる!Linaroコミッターへの道
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
 
Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料
 
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
 
Markdownでドキュメント作成
Markdownでドキュメント作成Markdownでドキュメント作成
Markdownでドキュメント作成
 
ペパボのサービスとRuby
ペパボのサービスとRubyペパボのサービスとRuby
ペパボのサービスとRuby
 

Rails+Markdownでなにかつくる