iT邦幫忙

DAY 10
3

快寫HTML靜態網頁系列 第 10

用HAML寫HTML內容會遜掉?

  • 分享至 

  • xImage
  •  

許多的CMS或部落格平台,
支援Markdown的格式,
所以Markdown就是最佳寫HTML的快寫工具嗎?
Haml Sucks for Content 這一文中,
主要說要寫HTML的時候,
用HAML不是最好的選擇,
以要寫出這段 HTML 為例:

<p>
Please, <strong> For the love of <a href='http://www.god.com/'>God</a>, </strong> don't use <a href='http://haml-lang.com'>Haml</a> for marking-up your content!
</p>

用 HAML 就一定要這樣子的格式語法才能順利編譯出來:

%p
  Please,
  %strong
    For the love of
    = succeed "," do
      %a(href="http://www.god.com/") God
  don't use
  %a(href="http://haml-lang.com") Haml
  for marking-up your content!

而用 Markdown 的語法,可以一看就很自然地的方式寫出:

Please, **For the love of [God](http://www.god.com/),**
don't use [Haml](http://haml-lang.com) for marking-up your content!

用這樣的例子,實在把 HAML 顯得不堪,
但HAML那麼不值一提嗎?

HAML適合頁面佈局及設計用
要把各元素的ID或class做表示,
HAML可以有很乾淨的語法來表現,
但又需要嚴謹的縮排才符合編譯規則,
所以在安排版面時,會常用到標籤加上樣式時,
HAML是只適合決定版本安排的時候。

但這講法未必絕對是如此,
而有下列的變通的方式:

直接塞HTML的語法

%p
  Please, <strong> For the love of <a href="http://www.god.com/"> God </a>
  %br
  don't use <a href="http://haml-lang.com"> Haml </a> for marking-up your content!

主要語法是用HAML,也用HAML編譯,
這樣把HTML直接寫入,也是可行的。

用過濾器
HAML支援 plain, cdata, escaped, erb, textile, markdown, maruku 等語法,
理想的方式是在 HAML 裡加入 :markdown,
之後的範圍可用 markdown 的語法:

.content
  :markdown
    Please, **For the love of [God](http://www.god.com/),**
    don't use [Haml](http://haml-lang.com) for marking-up your content!

執行 HAML 可順利的編譯出:

<div class='content'>
  <p>Please, <strong>For the love of <a href="http://www.god.com/">God</a>,</strong>
  don't use <a href="http://haml-lang.com">Haml</a> for marking-up your content!</p>
</div>

用 partial 的方式
在 rails 可以把主要的架構用HAML,
而部份的子內容裡,
使用 markdown 的語法。

可行的方式
每個人對不同的語法適應度有所不同,
有些情況需要下,
可以用HAML用得很高興;
但有時用到太痛苦的時候,
就可用上述的方式與其他的語法結合。

也許就架構網站、網頁的時候,
HAML是快速的工具,
但要給使用者去填內容時,
Markdown更適合用在需多變化的文體上。

參考連結
Haml Sucks for Content
Why HAML sucks or Why you should think before choosing HAML for your next project

系列文章列表


上一篇
更多的輕量標籤語言
下一篇
塞假資料測試版面:Lorem Ipsum 假文的使用
系列文
快寫HTML靜態網頁27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言