3 ms·
In which the OP can't figure something out so they choose to flame it instead. The OP provides the following example as a irrefutable damnation of haml: %h2 H
by marknutter 16y ago
In which the OP can't figure something out so they choose to flame it instead.
The OP provides the following example as a irrefutable damnation of haml:
%h2 Heading content
%p
This is just some
%em emphatic
text. Maybe I'll talk about
%code $BASH_VERSION
here.
They complain about the inability to nest em and code tags on a single line.
Hey OP, try this:
%h2 Heading content
%p
This is just some <em>emphatic</em> text. Maybe I'll talk about <code>$BASH_VERSION</code> here.
or did you forget that you can mix html in with haml where needed? Pointless, sloppy, flame-bait. /endrant
I was reluctant to learn HAML myself, but after being "forced" to do so on a project last spring, I actually cringe when I see standard HTML and CSS now. Not only has haml shrunk the size of my code by almost half, it has made it easier to scan, maintain, and my css matches up much more closely to my markup. Simply put, HAML/SASS is one of the biggest productivity/sanity boosts I've experienced in my young development career.
*edit: spelling, and formatting.
- silentbicycle 16y agoHe's explicitly asking if there's a better way to do that (read the last paragraph), so lighten up. PS - You spelled "flame-bait" wrong.
- marknutter 16y agoHe titled it "I Hate Haml." There are better ways to ask for help. PS - Pointing out my misspelling of "flame-bait" is flame-bait.
- silentbicycle 16y agoIndeed. So hey, to make something of this discussion: Am I correct in thinking HAML is fairly closely tied to Ruby? I'm quite familiar with Markdown* , but don't use Ruby. As long as we're committing to a given language for an ersatz HTML syntax, I prefer CL-WHO (http://weitz.de/cl-who/ http://weitz.de/cl-who/) or a similar approach in Lua, JSON, etc. Also, it doesn't look like there's cross-language support, which is a major advantage for Markdown, JSON, and other such formats. * My favorite implementation is discount (http://www.pell.portland.or.us/~orc/Code/discount/ http://www.pell.portland.or.us/~orc/Code/discount/), which is written in C, quite fast, and has a good test suite and pretty clean API.
- marknutter 16y agoI'm not sure, I've never tried using it outside of a rails/sinatra app, but I'm pretty sure you can have it generate the proper files for whatever language you're developing in. It ends up just being html, after all. Maybe somebody else has a better answer?
- telemachos 16y agoThere's a command-line version, so presumably you could use it that way, but I've also only ever come across it in the Ruby world.
- jameskilton 16y agoYes I do believe haml is built pretty strictly to Ruby. I haven't seen or heard of anything from the project about switching out what interpreter handles interpolation ( - and = ) as well as in-line for attributes: %div{:class => [ruby code here]}
- krainboltgreene 16y agoYes, HAML is directly tied to Ruby. Although there are PHP ports out there in progress. There is also a Ruby Discount gem, rdiscount.
- xiongchiamiov 16y agoA few Python versions, too (two projects that call themselves pyhaml).
- telemachos 16y agoHe titled it "I Hate Haml." There are better ways to ask for help. No doubt, except that I hate Haml. You're absolutely right that it was a quick sloppy post on my part. That said, I stand by my feelings (as personal reactions to how Haml looks and the choices it makes) and the HTML2Haml site suggested (by implication of how it converts things) that newlines was the way to do it. I absolutely didn't realize that you could include straight HTML inside Haml (and the docs don't make this overwhelmingly obvious). I now see this in the docs under "Plain Text": > Note that HTML tags are passed through unmodified as well. If you have some HTML you don’t want to convert to Haml, or you’re converting a file line-by-line, you can just include it as-is. But I wasn't looking in the section on "Plain Text" since I wanted marked-up text. Still, my fault for not reading the docs more carefully before ranting. Thanks for the tip and response (to you and to everyone here). I'm updating the post now. Changes should go up in no more than an hour. Edit: Changes are live. Thanks again to all commenters.
- carbon8 16y agoIn addition, you can use something like the markdown filter for body text. :markdown ## Heading Content This is just some *emphatic* text. Maybe I'll talk about `$BASH_VERSION` here.
- krainboltgreene 16y agoAs someone who uses HAML constantly: 1. :markdown doesn't accept classes, ids, or any other modifiers like %tags. This makes for some difficult fugging. 2. You cant do - ruby or = ruby under :markdown or similar. This is terribly inconsistent and requires some stupid work arounds.
- carbon8 16y ago1. Discount, used by both RDiscount and BlueCloth, supports limited use of classes in inline text via pseudo-protocols in link-style tags. You can also use inline HTML in markdown. I believe that the latter is what most people do. 2. You can do the equivalent of = in Haml filters by enclosing the Ruby in #{}. For example, where sign_up_path is a Ruby helper method: :markdown [Sign Up](#{sign_up_path}) Personally, in the past I've put large blocks of mostly-static content (eg, a TOS) in a erb template or partial. I now often use the markdown filter for things like help documentation in my sites.
- krainboltgreene 16y agoThe :markdown "symbol" doesn't take a class. :markdown.red#item2 %list:markdown.red#item2 %list.red#item2:markdown ...
- carbon8 16y agoForgive me if I'm misunderstanding your point, but :markdown isn't a tag that gets output to html, it just designates the beginning of the block to be processed with markdown, so classes and ids aren't applicable. If you want the markdown block in a class or id, you just do this: #id.class :markdown [A link](/path) outputs: <div id="id" class="class"> <a href="/path">A link</a> </div>
- krainboltgreene 16y ago1.That's inconsistent and just blows up the page size. 2. It would be deadly easy to have inline markup. Say: %p La la %strong la % la la. 3. The whole point of using HAML is to get rid of using the annoying HTML syntax. (Remember the tagline 'Markup haiku'?