SlideShare a Scribd company logo
1
● このスライドではHamlの基本的な書き方を紹介しています
● Progate( https://prog-8.com )っぽいデザインで作りました
● Progateの中の人が作りましたが、Progate公式コンテンツではあ
りません
● 是非、実際にHamlを書きながら学習してみてください!
はじめに
2
HamlでHTMLを記述する
● Hamlとは
● HamlでHTMLのタグを生成する
● Hamlでのインデントの扱い
● クラス名を付ける
● id名を付ける
● divタグの省略
● その他の属性の付け方( 1)
● その他の属性の付け方( 2)
● コメントの書き方
● DOCTYPE宣言
目次
3
HamlでRubyを使う
● Rubyのコードを埋め込む
● 変数を定義する
● 変数の値を表示する
● ハイフンとイコールの違い
● 条件分岐
● 繰り返し処理
Hamlを活用する
● Hamlをダウンロードする
● HamlをHTMLに変換する
● HamlとRuby on Rails
Haml(ハムル)とは、HTMLをよりシンプルにに書くことができる言語です。また、
Hamlのコード内ではRubyを用いることもでき、それによってより効率的にコードを
書くことができます。
Hamlのコードをそのままブラウザで表示することはできませんが、 HamlをHTML
に変換することで使用することができます。
Hamlとは
4
HamlでHTMLを記述する
早速Hamlの書き方を見ていきましょう。図のように「 %タグ名」と書くことで、HTML
のタグを生成することができます。このように、 Hamlの特徴の1つに、終了タグが
不要という点があります。
なお、「%タグ名」と「テキスト」の間には半角スペースが必要なので気を付けま
しょう。
HamlでHTMLのタグを
生成する
5
HamlでHTMLを記述する
また、左の図のようにインデント(字下げ)をすることにより、右の図のような入れ
子になったHTMLを生成することができます。
このように、Hamlでは通常のHTMLと異なり、インデントが実際の表示結果に影
響することに気をつけましょう。
Hamlでのインデントの
扱い
6
HamlでHTMLを記述する
左の図のように、「 %タグ名.クラス名」とすることで、そのタグにクラス名を指定す
ることができます。この際、「タグ名」とドット「 . 」の間にスペースを入れてはいけ
ないので注意しましょう。
また、連続してクラス名を書くことで、複数のクラス名を付けることも可能です。
クラス名を付ける
7
HamlでHTMLを記述する
クラス名と同様に、 id名も付けることができます。 id名を付けるにはドットではなく、
代わりにシャープ「#」を用います。クラス名も id名もCSSのセレクタと同じ記号を用
いるので、覚えやすいかと思います。
また、右の図のように書くことで、クラス名と id名の両方を付けることも可能です。
id名を付ける
8
HamlでHTMLを記述する
divタグに関しては特別に、クラス名や id名がついている場合には「 %div」の部分
を省略して書くことができます。
divタグの省略
9
HamlでHTMLを記述する
これまでにタグにクラス名と id名を付ける方法を学習しました。その他の属性とし
て、<img>タグの「src」や、<a>タグの「href」を指定する方法をみてみましょう。
これらはタグ名の後で、 Rubyのハッシュのように、 {:属性名 => 値}と指定すること
で属性を追加することができます。
その他の属性の付け
方(1)
10
HamlでHTMLを記述する
先ほど見た属性の追加方法は、以下の図のように {属性名: 値}と省略して書くこ
ともできます。この点からも、 Rubyのハッシュと同じような書き方であることがわ
かるかと思います。その他の属性の付け
方(2)
11
HamlでHTMLを記述する
Hamlでも、他のプログラミング言語と同じようにコメントを書くことができます。コメ
ントとは、コードにまったく影響をしない、コード内のメモ書きのようなものです。
図のように、行の先頭にスラッシュ「 /」、または「-#」のどちらかを付けることで、そ
の行をコメントにすることができます。
コメントの書き方
12
HamlでHTMLを記述する
HamlでHTMLを記述する方法の最後の内容として、 DOCTYPE宣言について見
てみましょう。DOCTYPE宣言はWebページを作成する際に、どのバージョンの
HTMLかを宣言するためのものです。
Hamlでは、左の図のように「 !!!」と書くことで、右の図のような DOCTYPE宣言を生
成することができます。
DOCTYPE宣言
13
HamlでHTMLを記述する
ここからは、Hamlのコード内でRubyを使用する方法を学習していきましょう。
Rubyの基礎知識に不安がある方は、 ProgateのRuby学習コースで学習してみて
ください。Rubyのコードを埋め込
む
14
HamlでRubyを使う
まずは変数を定義する方法を学習してみましょう。
図のように行の先頭にハイフン「 -」を書き、その後で「 変数名 = 値」とRubyのコー
ド続けます。変数を定義する
15
HamlでRubyを使う
また、定義した変数の値を用いるには、先頭にイコール「 =」を書いてからその変
数名を書きます。
また、変数に代入した値は計算に使用したり、変数展開を用いたりすることも可
能です。
変数の値を表示する
16
HamlでRubyを使う
これまでに、変数の定義はハイフン「 -」、変数の値を表示するにはイコール「 =」を
使用してきました。
これらの違いは、 Rubyのコードの結果(値)を表示しない場合はハイフン、表示す
る場合にはイコール、と覚えておきましょう。
ハイフンとイコールの
違い
17
HamlでRubyを使う
ここからはHamlでよく使用するRubyのコードをいくつか紹介します。
まずは条件分岐です。 Haml内でも以下の図のように if文やelse文を使用して表示
を切り替えることができます。
この際、「if 条件式」や「else」の部分は実際に表示する内容ではないため、先頭
にハイフンを用いるようにしましょう。
条件分岐
18
HamlでRubyを使う
配列に対する繰り返し処理もよく使用する文法です。
図のように、定義した配列に対して each文を用いることで、同じような要素を繰り
返して表示する際には非常に効率よく書くことができます。繰り返し処理
19
HamlでRubyを使う
最後に、Hamlを実際に使用する方法について簡単に見てみましょう。
自分のPCでHamlを利用するには、まず Hamlをダウンロードする必要がありま
す。公式サイト( http://haml.info/ )のダウンロードの項目では、以下のコマンドを
実行することで、 Hamlのgemを使用する方法が紹介されています。
Hamlをダウンロードす
る
20
Hamlを活用する
gemを用いてHamlをダウンロードできたら、作成した HamlファイルをHTMLファイ
ルに変換してみましょう。
図のように「haml Hamlファイル名 HTMLファイル名」というコマンドを実行するこ
とで、HamlのコードをHTMLに変換し、自動でファイルに書きこむことができます。
HamlをHTMLに変換す
る
21
Hamlを活用する
また、Hamlを用いる場面の 1つとして「Ruby on Rails」のビューファイルとして用
いることがあります。
「haml-rails」というgemをインストールすることで、 erbファイルの代わりに haml
ファイルを使用することができます。
(詳しくは「rails haml」などで検索してみてください!)
Hamlと
Ruby on Rail
22
Hamlを活用する
● 最後まで読んでいただき、ありがとうございました
● Hamlで快適な生活をお過ごしください
● 内容に関するご指摘やご質問は以下の連絡先までお願いします
さいごに
23
カイトズズキ
Twitter: @k_toooooooooo
Email: suzukikaito@prog-8.com

More Related Content

Similar to Haml 学習コース 初級編

電技研Web講習
電技研Web講習電技研Web講習
電技研Web講習
So Murata
 
Dsl&Builder
Dsl&BuilderDsl&Builder
Dsl&Builder
Uehara Junji
 
html5講座 (初心者向け)
html5講座 (初心者向け)html5講座 (初心者向け)
html5講座 (初心者向け)
Kohki Nakaji
 
html講座
html講座html講座
html講座
nitmic
 
20080823-TransformingPlainTextToHtml
20080823-TransformingPlainTextToHtml20080823-TransformingPlainTextToHtml
20080823-TransformingPlainTextToHtmlKoji SHIMADA
 
HTML5コーディング環境を Dreamweaverで構築する
HTML5コーディング環境を Dreamweaverで構築するHTML5コーディング環境を Dreamweaverで構築する
HTML5コーディング環境を Dreamweaverで構築する
Akira Maruyama
 
G * magazine 1
G * magazine 1G * magazine 1
G * magazine 1
Tsuyoshi Yamamoto
 

Similar to Haml 学習コース 初級編 (8)

電技研Web講習
電技研Web講習電技研Web講習
電技研Web講習
 
Dsl&Builder
Dsl&BuilderDsl&Builder
Dsl&Builder
 
html5講座 (初心者向け)
html5講座 (初心者向け)html5講座 (初心者向け)
html5講座 (初心者向け)
 
html講座
html講座html講座
html講座
 
20080823-TransformingPlainTextToHtml
20080823-TransformingPlainTextToHtml20080823-TransformingPlainTextToHtml
20080823-TransformingPlainTextToHtml
 
HTML5コーディング環境を Dreamweaverで構築する
HTML5コーディング環境を Dreamweaverで構築するHTML5コーディング環境を Dreamweaverで構築する
HTML5コーディング環境を Dreamweaverで構築する
 
kyotovim#1
kyotovim#1kyotovim#1
kyotovim#1
 
G * magazine 1
G * magazine 1G * magazine 1
G * magazine 1
 

Recently uploaded

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (15)

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

Haml 学習コース 初級編