Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LaravelでMarkdownをブラウザに表示する方法
Search
SAW
October 30, 2019
Programming
0
1.5k
LaravelでMarkdownをブラウザに表示する方法
Web×PHP TechCafe 10月 の発表資料です。
SAW
October 30, 2019
Tweet
Share
More Decks by SAW
See All by SAW
React Hook Form と Zod によるフォームバリデーション
azuki
0
33
PHP で form-data を POST 以外のメソッドで受け取るには?
azuki
0
59
PHP で学ぶ OAuth 入門
azuki
2
1k
EditorConfig を使ってみよう
azuki
1
96
Symfony でサクッと作る REST API サーバー
azuki
1
220
Vite の Library Mode を使って Vue のコンポーネントをライブラリ化する
azuki
1
320
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
380
Provide/Inject で TypeScript の恩恵を受ける方法
azuki
3
170
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
400
Other Decks in Programming
See All in Programming
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
140
React Native × React Router v7 API通信の共通化で考えるべきこと
suguruooki
0
100
AI時代の認知負荷との向き合い方
optfit
0
170
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
CSC307 Lecture 05
javiergs
PRO
0
500
Fluid Templating in TYPO3 14
s2b
0
130
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
SourceGeneratorのススメ
htkym
0
200
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Designing Powerful Visuals for Engaging Learning
tmiket
0
240
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
HDC tutorial
michielstock
1
400
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
Exploring anti-patterns in Rails
aemeredith
2
250
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Transcript
-BSBWFMͰ.BSLEPXOΛ ϒϥβʹදࣔ͢Δํ๏ 8FCº1)15FDI$BGF 4"8
XIPBNJ w ࢯ໊Ճ౻फҰ ࡀ ‣ େࡕࡏॅɾѪग़ ‣ ϋϯυϧωʔϜ4"8
w 4/4ΞΧϯτ ‣ 5XJUUFS!B[VLJ@FBUFS ‣ (JU)VCB[VLJQFOHVJO w ॴଐגࣜձࣾ.4&/ 2 FreeBSD macOS Linux Vue.js
.BSLEPXOΛ)5.-ʹมͯ͠ૹ৴ w -BSBWFMͰ.BSLEPXOΛ)5.-ʹมͯ͠Ϗϡʔʹө͍ͨ͠ ‣ ྫ.BSLEPXOͰهࣄΛॻ͚ΔϒϩάγεςϜͷ࡞ w 1)1ͷ.BSLEPXOύʔαϥΠϒϥϦcebe/markdownΛಋೖ ‣ ෳͷ.BSLEPXOॻࣜʹରԠ
5SBEJUJPOBM(JU)VC.BSLEPXO&YUSB 3
1)1.BSLEPXOύʔαϥΠϒϥϦͷൺֱ w DFCFNBSLEPXO ‣ ରԠॻࣜ5SBEJUJPOBM(JU)VC.BSLEPXO&YUSB w 1)1.BSLEPXO ‣ ରԠॻࣜ5SBEJUJPOBM.BSLEPXO&YUSB w
1BSTFEPXO ‣ ରԠॻࣜ(JU)VC 4
DFCFNBSLEPXOͷಋೖํ๏ w $PNQPTFSܦ༝ͰΠϯετʔϧ ‣ composer require cebe/markdown w .BSLEPXOύʔαΫϥεΛಡΈࠐΈ ‣
cebe\markdown\Markdown.BSLEPXOͷύʔαΫϥε ‣ cebe\markdown\GithubMarkdown(JU)VCॻࣜͷύʔαΫϥε ‣ cebe\markdown\MarkdownExtra.BSLEPXO&YUSBॻࣜͷύʔαΫϥε 5
DFCFNBSLEPXOͷར༻ํ๏ w .BSLEPXOύʔαΫϥεͷಡΈࠐΈ ‣ use cebe\markdown\GithubMarkdown; w ύʔαΠϯελϯεͷੜ ‣ new
GithubMarkdown(); w )5.-ܗࣜʹม ‣ $parser->parse($markdown); 6 <?php use cebe\markdown\GithubMarkdown; public class Md2Html { public static function convert($md) { $parser = new GithubMarkdown(); return $parser->parse($md); } }
ม݁ՌΛϏϡʔʹө w #MBEFϑΝΠϧʹม༰ΛຒΊࠐΈ ‣ $parser->parse($md))5.-ܗࣜͷจࣈྻΛฦ٫ ‣ {!! !!}Ͱ)5.-ͷΤεέʔϓΛࢭ 7 <div>{!!
$html !!}</div> <div> <ul> <li>Laravel</li> <li>CakePHP</li> <li>FuelPHP</li> </ul> </div>
.BSLEPXOύʔαͷར༻ྫ w .BSLEPXOͰهࣄΛฤू͢ΔϒϩάγεςϜ 8 Laravel ฤू ߘɾϓϨϏϡʔ อଘ NE औಘ
NE ม IUNM ߘ༰ͷ Ϗϡʔ ΫϥΠΞϯτ %# औಘ NE ฤूը໘
ιʔείʔυྫ 9 class Article extends Model { public function getBodyAttribute($value)
{ $parser = new GithubMarkdown(); $this->attributes[‘body’] = $parser->parse($value); } } class ArticleController extends Controller { public function index(Request $req, $id) { $article = Article::find($id); return view(‘article’, [ ‘article’ => $article ]); } } <h1> {{ $article->title }} </h1> <article> {!! $article->body !!} </article>
·ͱΊ w 1)1ͷ.BSLEPXOύʔαDFCFNBSLEPXOͷհ ‣ ෳͷॻࣜʹରԠՄ w -BSBWFMͷಋೖํ๏ͱར༻ํ๏Λઆ໌ ‣ ରԠ͢Δ.BSLEPXOύʔαͷछྨ ‣
.BSLEPXO͔Β)5.-ม͢Δํ๏ 10
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠