Live data from Hacker News

Introducing Nemo: A Pythonic Haml

github.com

11–19 of 19 posts

Re: Introducing Nemo: A Pythonic Haml

#12
I like what I see and of course I had to optimize it for my very peculiar taste:

    html
    head
      title My web page
      meta name=this content=that
      link rel=stylesheet href=style.css
      script src=jquery.js
    body
      header
        logo
          img src=logo.jpg
      main
        content .center
          h1 Welcome to my site
          p
            This is my first post
            Feel free to comment at the end.
    
          pre #hello
            a=1+2+3
            print a
    
      footer
        p no copyrights at all

Assume every first word is a known tag or convert it to div with id. Use significant white space. Content tags like 'p' or 'pre' are closed by a blank line.

It may work for 90% of my own projects and it is by far the simplest markup I have seen, evar.

Re: Introducing Nemo: A Pythonic Haml

#13
A while back, I wrote a very small Python HTML rendering library that gives some of the benefits of this notation while still being Python source code. You _may_ find it interesting if this is the sort of thing you find interesting...

http://hotwax.cjmunday.com/python.html#sec-1.2

See the CherryPy file browser example later in the page for a demonstration of how it's used.

Re: Introducing Nemo: A Pythonic Haml

#14
post #7

Another one: https://github.com/riffm/mint

Ah I forgot about Mint.

I don't want to talk badly about it--because to be honest it has some really cool features like chained-method-calls that allow you to quickly compose HTML attributes via inheritance----but Mint has always struck me as more Perl than Python.

Look at this:

    @p.class(title).title({{ doc.title }}) {{ doc.title }}
That transforms into this HTML (unescaped urls because Mint produces XML by default):

    
        title
    

The alternative in Nemo is:

    % p .'title' title='${doc.title}'   ||   ${ doc.title }
I don't know why Nemo looks better in my eyes but I think it has to do with explicit separation, and string substitution instead of a method-call syntax.

Mint feels like a programming language that happens to produce HTML as a side-effect.

Re: Introducing Nemo: A Pythonic Haml

#15
post #9

Earlier quoted context omitted.

You might want to update your readme file so everyone knows that it compiles down to Mako just at a glance. Right now its confusing. But if I'd known about this project a few days ago, you'd have definitely been added to my list of Muses. Also, does your fork support the full range of Mako control structures? Looking at the nodes.py it seems that its still targeted towards a Django-templates backend.

Yeah, I quickly hacked it together, I will update the readme soon. It does support the mako control structures. You see them rendered around line 200 in nodes.py.

You forgot to change the list of self-closing tags.

I'd suggest making 'while' self closing.

How do you handle Mako defs, and namespace tags?

Re: Introducing Nemo: A Pythonic Haml

#16
post #13

A while back, I wrote a very small Python HTML rendering library that gives some of the benefits of this notation while still being Python source code. You _may_ find it interesting if this is the sort of thing you find interesting... http://hotwax.cjmunday.com/python.html#sec-1.2 See the CherryPy file browser example later in the page for a demonstration of how it's used.

Oh definitely.

To me, it seems that everyone is striving to find an easier way to programmatically create HTML in Python. The current range of templating languages just don't cut it.

I think there's no definitive solution partially because everyone is copying Haml, and Hamls' syntax and trade-offs aren't really appropriate for Python users.

Re: Introducing Nemo: A Pythonic Haml

#17

I like what I see and of course I had to optimize it for my very peculiar taste: html head title My web page meta name=this content=that link rel=stylesheet href=style.css script src=jquery.js body header logo img src=logo.jpg main content .center h1 Welcome to my site p This is my first post Feel free to comment at the end. pre #hello a=1+2+3 print a footer p no copyrights at all Assume every first word is a known t…

Did you fork it on Github?

I'd love to see your code.

Right now, its' looking like a better version of SPHaml, but who can tell without seeing the gotchas'.

Like when it comes to assumptions, you'd be surprised how many times I write the word "option" as the first thing in a sentence. =)

Re: Introducing Nemo: A Pythonic Haml

#18

I like what I see and of course I had to optimize it for my very peculiar taste: html head title My web page meta name=this content=that link rel=stylesheet href=style.css script src=jquery.js body header logo img src=logo.jpg main content .center h1 Welcome to my site p This is my first post Feel free to comment at the end. pre #hello a=1+2+3 print a footer p no copyrights at all Assume every first word is a known t…

Did you fork it on Github? I'd love to see your code. Right now, its' looking like a better version of SPHaml, but who can tell without seeing the gotchas'. Like when it comes to assumptions, you'd be surprised how many times I write the word "option" as the first thing in a sentence. =)

No no that's just a quick brain dump just to see if it could be optimized a bit further. I love simplicity and always try to simplify stuff just for the fun of it.

Re: Introducing Nemo: A Pythonic Haml

#19

Earlier quoted context omitted.

Did you fork it on Github? I'd love to see your code. Right now, its' looking like a better version of SPHaml, but who can tell without seeing the gotchas'. Like when it comes to assumptions, you'd be surprised how many times I write the word "option" as the first thing in a sentence. =)

No no that's just a quick brain dump just to see if it could be optimized a bit further. I love simplicity and always try to simplify stuff just for the fun of it.

Got it.

If you do get the time, check out the code and see if you can tweak things to your liking.

I'll be doing a cleanup/refactoring later this week to make things better.

However, the core of Nemos' parsing is handled by pyparsing, so if you can read and write eBNF, then you can tweak Nemos' syntax to your liking pretty easily.

Post reply on HN