SlideShare a Scribd company logo
Markdown for beginners
2019/7/31
tagi@jspnet.co.jp, kubota-chi@jspnet.co.jp
⽬次(1/2)
1. はじめに
2. Markdown とは?
3. Visual Studio Code(VS Code)
4. 段落と強制改⾏
5. 記法
基本のMarkdown
GitHub Flavored Markdown(GFM)
⽬次(2/2)
6. HTML との関係
HTML の直接埋め込み
コメント
Babelmark
構造とスタイルの分離
7. ⽤語
8. リンク集
はじめに
Markdown はインターネット時代のライティング法です。
Markdown で⽂章を書いてエクスポートすれば、HTML を書かな
くても、完璧にフォーマットされたブログ記事やウェブページ、
コメント欄が完成します。-- Apple Store
“
“
4
Markdown とは?
プレーンテキストで書かれたテキストからHTML を⽣成するために
開発された軽量なマークアップ⾔語
電⼦メールによるプレーンテキストの装飾する際の慣習から着想を
得ている
マークアップを追加しても原稿(プレーンテキスト)の⾒やすさが
保持されるのが特徴
動作の軽いテキストエディタで原稿を執筆できる
5
歴史
2004/8 にJhon Gruber によってMarkdown.pl の初版がリリースさ
れる
リリースしたもののGruber はMarkdown の改善には消極的
結果として各所で独⾃の定義・拡張がなされ⾮公式な仕様
(Markdown ⽅⾔)が乱⽴する形となった
紆余曲折あり「事実上のMarkdown 標準仕様」である
CommonMark が出来上がる
2017/5 にGitHub Flavored Markdown(GFM)がCommonMark
を元に作り直される
6
⽅⾔
GitHub Flavored Markdown(GFM)
MultiMarkdown
論⽂・書籍執筆に便利な記法(脚注や数式など)が追加
はてなブログのMarkdown
はてな記法とMarkdown が合体したもの
Pandoc's Markdown
幅広い出⼒形式に対応。他のMarkdown ⽅⾔への変換も可能
Pandoc は⽂書変換ツール
7
R Markdown
統計結果の表やグラフをR の記法を⽤いて埋め込むことができる
CommonMark
Markdown の(事実上の)標準仕様
R は統計解析⽤の環境
他にもQiita やStack Overflow、Slack のメッセージなど、枚挙に遑
がない
8
HTML を出⼒するまでの流れ
9
Visual Studio Code(VS Code)
ビルトインでMarkdown のプレビューができる
Markdown プレビューの処理にmarkdown-it を採⽤している
つまり、CommonMark 準拠
Markdown ⽤の拡張が豊富(マーケットプレイス)
10
段落と強制改⾏
⼀般にプレーンテキストで原稿を書く場合、改⾏と段落の扱いに流儀
がある
電⼦メール流段落
1 ⾏の⻑さが画⾯の幅を超えないように、適宜改⾏する
段落の区切りは空⾏
段落の頭での字下げはしない
ワープロ流段落
改⾏するのは段落の区切りだけ
段落の頭では通常1 ⽂字分の字下げをする 11
Markdown は電⼦メール流段落を原則としている。が、⾒やすさの
ために⼊れた改⾏は出⼒の段階で無視(多くの処理系では空⽩⽂字に
変換)される
これは、そもそもMarkdown はHTML 出⼒を⽣成するための記法で
あり、画⾯の⼤きさに応じて改⾏を⾏う処理(soft wrap)はWeb ブ
ラウザが担当すべきであるという設計思想によるもの
12
⼀⽅、思想に反して強制的に改⾏(hard wrap)させる⽅法もある。
この場合、⾏末に「␣」(スペース)を2 つ付与する
からころも␣␣
きつつなれにし␣␣
つましあれば␣␣
はるばるきぬる␣␣
たびをしぞおもふ(伊勢物語)
13
記法
基本的なMarkdown
GitHub Flavored Markdown(GFM)
14
記法- 太字
アスタリスク「*」2 個でテキストを囲むと太字になる
**太字** だよ
アスタリスク「*」1 個でテキストを囲むことで斜体になる
*斜体* だよ
15
CommonMark では「*」でテキストを囲むことを「強調
(emphasis)」と呼び、少なくとも欧⽂は斜体(italic)として表⽰さ
れる。同様に「**」でテキストを囲むことを「強い強調(strong)」
と呼び、太字(bold)で表⽰される
伝統的な⽇本語組版では、かな漢字に斜体を使うことはない。和⽂フ
ォントには適切にデザインされた斜め⽂字が⽤意されていないことが
多い
よって、和⽂でテキストを強調するには「強い強調(strong)」を使
うとよい
欧⽂については後ほど
16
記法- ⾒出し
ハッシュ記号「#」から書き始めると⾒出しになる。「#」の数に応じ
て⾒出しレベルを変更できる(1〜6まで)
#␣⾒出し1
##␣⾒出し2
###␣⾒出し3
####␣⾒出し4
#####␣⾒出し5
######␣⾒出し6
「#」と⾒出し⽂字列の間に半⾓スペース「␣」が必要
17
記法- リンク
URL をリンク(ハイパーリンク)としてテキストへ埋め込む。3 種類
の⽅法がある
基本
⾓括弧「[」「]」の中に表⽰させたいテキストを書く
丸括弧「(」「)」の中にリンク先URL を書く
上の2つを並べて書く
[表⽰されるテキスト](リンク先 URL)
18
参照リンク形式
表⽰されるテキストとリンク先URL を分けて書く形式。⻑いリンクを
本⽂の中に埋め込みたくない場合に便利
[表⽰されるテキスト][参照ラベル]
:
[参照ラベル]:␣リンク先 URL
「[表⽰されるテキスト][参照ラベル]」の塊
「[参照ラベル]:␣リンク先URL」の塊
は1 つ以上の空⾏で区切ること
19
さらに、参照ラベルは省略することができる
[表⽰されるテキスト]
:
[表⽰されるテキスト]:␣リンク先 URL
この場合、表⽰されるテキストと参照ラベルを同じにして対応づける
20
⾃動リンク記法
URL を⼩なり記号「<」と⼤なり記号「>」で囲む
<リンク先 URL>
多くの処理系ではこの記法に従わなくてもリンクとして認識される。
ただ、URL の前後に⽂字がくっついているとダメな場合が多い。この
⾃動リンク記法を⽤いると確実
21
記法- 画像
リンク記法の頭に感嘆符「!」を付与する
![代替テキスト](画像の URL)
「代替テキスト」は画像が表⽰できない際に提⽰されるテキスト。省
略することができる
![](画像の URL)
22
画像はURL でアクセスできる必要がある。⾃前の画像は images/ デ
ィレクトリを作成し、ここに格納しておくのがよい
.
├── images/
│   └── marp.png
└── markdown-beginners.md
相対パスで書いておけばMrakdown の原稿とともに images/ ディレ
クトリもまるっとサーバにアップするだけでよい
![Marpロゴ](images/marp.png)
23
記法- 引⽤
⼤なり記号「>」から書き始めると引⽤になる
>␣引⽤⽂
「>」と⽂字列の間に半⾓スペース「␣」が必要。複数⾏にわたる場
合は各⾏に「>」を挿⼊する。ただし、通常の⽂章と同様に表⽰上で
は改⾏されない(段落は空⾏ルール)
24
記法- 番号なしリスト(番号のない箇条書き)
ハイフン「-」、またはアスタリスク「*」、プラス「+」から書き始め
ると番号なしリストになる
-␣リスト1
-␣リスト2
-␣リスト3
⾏頭の記号と⽂字列の間に半⾓スペース「␣」が必要。また、リスト
の前後に空⾏で挟まなければならない
25
番号なしリストの⼊れ⼦
⾏頭に半⾓スペース「␣」を2 つ以上挿⼊することで⼊れ⼦になる。
⾏頭の半⾓スペース「␣」の数を2 倍、3 倍と増やすとさらに⼊れ⼦
にすることができる
-␣リスト1
␣␣-␣リスト1-1
␣␣-␣リスト1-2
␣␣␣␣-␣リスト1-2-1
⼊れ⼦に使う半⾓スペース「␣」の数はMarkdown ⽂書の中で統⼀す
べき(プログラムのインデントと同じ)である
26
記法- 番号付きリスト(番号のある箇条書き)
半⾓数字とピリオド「.」、または閉じ丸括弧「)」から書き始めると
番号付きリストになる
1.␣リスト1
2.␣リスト2
3.␣リスト3
「.」(ピリオド)と⽂字列の間に半⾓スペース「␣」が必要。番号な
しリストと同様に、リストの前後は空⾏で挟まなければならない
27
番号付きリストの⼊れ⼦
⾏頭に半⾓スペース「␣」を挿⼊することで⼊れ⼦になる。親リスト
の⽂字列の先頭位置と揃うように半⾓スペースを挿⼊する
1.␣リスト1
␣␣␣1.␣リスト1-1 ※⾏頭の半⾓スペースの数は 3
:
10.␣リスト10
␣␣␣␣1.␣リスト10-1 ※⾏頭の半⾓スペースの数は 4
28
記法- ⽔平線(主題分割)
ハイフン「-」、またはアスタリスク「*」、アンダースコア「_」を3
つ以上並べると⽔平線になる
---
何かしらの⽂字列の次の⾏にハイフン「-」を並べると⾒出し2 として
解釈されてしまうので前後に空⾏を挟んだ⽅がよい
29
記法- コード
バッククオート「`」でテキストを囲むとコード記法になる
`This is code.`
「この部分はソースコード(コマンド)である」を表現するために使
⽤する。原則として等幅フォントで表⽰されるのでファイル名に使っ
たりもする
30
記法- コードブロック
バッククオート「`」3 つでテキストの塊を囲むとコードブロック記法
になる
```
This
is
code block.
```
コード表記と同様に等幅フォントで表⽰され、またコードブロック内
の改⾏は出⼒先で必ず改⾏される。ログを貼ったりするときに使った
りする 31
記法- エスケープ
マークアップで使⽤される記号「*」、「#」、「`」⾃⾝を表⽰するに
は記号の前にバックスラッシュ「」を⼊れる
* # ` 
バックスラッシュ「」⾃体を表⽰したい場合は「」と2 つ続けて書
く
32
記法(GFM)- 表
以下のルールに従うと表を作ることができる
列をバーティカルバー「|」で構成
ヘッダ⾏と残りの⾏を3 個以上のハイフン「-」で区切る
|品物|値段|
|---|---|
|いちご|500|
|りんご|100|
|みかん|80|
33
しきり⾏でコロン「:」を⽤いることにより、列の左寄せ・中央寄せ・
右寄せをコントロールできる
|左寄せ|中央寄せ|右寄せ|
|---|:---:|---:|
|ひだり|まんなか|みぎ|
34
記法(GFM)- タスクリスト
番号なしリストの⽂字列の頭に「[␣]」、または「[x]」を付与すること
によりタスクリストを表現できる
-␣[␣]␣完了していないタスク
-␣[x]␣完了したタスク
実際には前者はチェックOFF、後者はチェックON として⾒える
VS Code のプレビューでは表⽰できない
35
記法(GFM)- 打ち消し線
チルダ「~」2 個でテキストを囲むとテキストの上に打ち消し線をつけ
る
Markdown は ~~嫌いです~~ 好きです
36
記法(GFM)- 絵⽂字
「:絵⽂字の名前:」という形式でプレーンテキストとして絵⽂字を⼊
⼒できる
:smile: :heart: :+1:
絵⽂字の名前はEmoji Cheat Sheet で検索・コピーが可能
VS Code のプレビューでは表⽰できない
37
記法(GFM)- シンタックスハイライト
コードブロックの先頭のバッククオート「`」3 つの後ろに⾔語識別⼦
を付与することにより、コードブロックに⾊づけすることができる
```⾔語識別⼦
ソースコード
```
⾔語識別⼦の完全なリストはlinguist/languages.yml にある
38
HTML との関係
HTML の直接埋め込み
コメント
Babelmark
構造とスタイルの分離
39
HTML の直接埋め込み
Markdown はそもそもHTML を⽣成するために開発された⾔語である
ため、HTML コードを解釈できるMarkdown 処理系が多い。以下のよ
うにも書ける
<div style="text-align:center;">
<img src="images/logo.png" width="200"/>
</div>
ただ「裏技」的な側⾯もあるので処理系に注意しながら使うこと
40
コメント
CommonMark には「コメント記法」に相当する記法がない。HTML
のコメントで代⽤する
<!-- 単⼀⾏のコメント -->
<!--
複数⾏の
コメント
-->
41
Babelmark
多種多様に存在するMarkdown 処理系を⽐較するためのツールとして
Babelmark がある。Markdown を検証したい場合に便利
42
構造とスタイルの分離
Webサイトの役割分担:
HTML: 構造と内容(コンテンツ)の定義
CSS: スタイル(⾒た⽬)の定義
43
em 要素とstrong 要素
多くのMarkdown 処理系では以下のとおり
Markdown HTML
*テキスト*(強調) <em>テキスト</em>
**テキスト**(強い強調) <strong>テキスト</strong>
⼀⽅、MDN によるHTML の説明を⾒ると、
44
em 要素
周囲の⽂章と⽐較して、強調されたテキストを⽰す
通常、斜体で表⽰される
以下のタグも通常、斜体で表⽰される
<cite> .. 著作物(書籍、演劇、歌など)の題名
<i> .. 外来語、架空の登場⼈物の考え、⽤語の定義を表す⽂字
列など、通常の⽂章から外れた⽂字列
45
strong 要素
重要なテキストを表す
通常、太字で表⽰される
以下のタグも通常、太字で表⽰される
<b> .. 重要であるという意味なしにテキストに興味を引かせる
46
Markdown には強調(斜体)と強い強調(太字)の2 種類しかない。
⽬にしてきた限り、欧⽂のページでは
強調(斜体).. <em> だけでなく<cite> や<i> も扱っている
強い強調(太字).. <strong> だけでなく<b> も扱っている
ケースが多い。
Markdown では「読みやすく、書きやすく」するためにこれらの記法
を簡略化する⼀⽅、「HTML が直接埋め込める」という⼿段を⽤意し
ておくことで拡張性を担保したものと思われる
47
⽤語
Markdown
プレーンテキストで⽂章を書くための記法の⼀種
プレーンテキスト
何も書式がついていないテキスト(⽂字の並び)
段落、パラグラフ
⻑い⽂章を適当なところで区切ったもの。ひとまとまりの部分。
形式的に、1 字下げて書き始める⼀区切りをいうこともある
48
hard wrap
「Enter キーを押した箇所で、⾒た⽬上でも改⾏される」場合の
改⾏。強制改⾏
soft wrap
「ウィンドウの状況や設定などに応じて、⾃動的に改⾏される」
場合の改⾏
49
リンク集
Daring Fireball: Markdown
Jhon Gruber のMarkdown
CommonMark
Markdown の(事実上の)標準仕様
markdown-it
CommonMark に準拠したMarkdown 処理系
Babelmark
Markdown 処理系を⽐較するためのツール(サイト)
50
Emoji Cheat Sheet
絵⽂字⼀覧
linguist/languages.yml
GFM シンタックスハイライトの⾔語識別⼦⼀覧
51
Markdown Presentation Ecosystem

More Related Content

PDF
Cmssol Mt Wp091210
PDF
Tech.G HTML5 プレ講座
PDF
Markdown入門
PDF
Markdownもはじめよう
PDF
Markdownでドキュメント作成
PDF
Markdown で行こう!
PPTX
TokyoR:RMarkdownでレポート作成
PDF
AIで画像認識をしてみよう
 
Cmssol Mt Wp091210
Tech.G HTML5 プレ講座
Markdown入門
Markdownもはじめよう
Markdownでドキュメント作成
Markdown で行こう!
TokyoR:RMarkdownでレポート作成
AIで画像認識をしてみよう
 
Ad

Markdown beginners