title: Can someone explain the syntax in the geb Page content DSL?
body: <p>I have problems to understand the syntax with which pages are described (defined) in Geb. The following is an example page class that works fine but I don't understand how it works.  </p>
  
  <pre><code>import geb.Page
  
  class GebHomePage extends Page{
      static url = "http://gebish.org"
  
      static at = { title == "Geb - Very Groovy Browser Automation" }
  
      static content = {
          seeGuideButton { $('div', class:'ui huge primary button') }
          uiHeader { $('h1', class:'ui header', 0)}
      }
  }
  </code></pre>
  
  <p>I am interested in the syntax inside the closure referred to by content. Geb describes the syntax for the content DSL as </p>
  
  <pre><code>«name»(«options map») { «definition» }
  </code></pre>
  
  <p>I don't understand this syntax. The name part looks like a variable, but it is not declared (I miss a def or something similar) and the last part looks like a closure. But where is the connection between the name and the closure. There is no equal sign connecting the two. In a standard groovy class the syntax </p>
  
  <pre><code>«name» { «definition» }
  </code></pre>
  
  <p>does not compile. What happens in one line of the content DSL? What precisely are <code>uiHeader</code> and <code>seeGuideButton</code> and how are they related to the following closures? How does this syntax work exactly?</p>