SlideShare a Scribd company logo
1 of 23
Download to read offline
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
 
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
 

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

ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose EstimationToru Tamaki
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 

Recently uploaded (16)

ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 

Haml 学習コース 初級編