許多的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