====== Routes ====== Routes are defined by using ~ as a prefix. The routes will be used by a dispatcher and linkto components. :: %import components %inherit base ~routes: list: '/blog/posts' show: '/blog/post/{id}' edit: '/blog/post/{id}/edit' *content: ul: li: base-linkto action='list': List li: base-linkto action='show' id=1: Details li: base-linkto action='edit' id=1: Edit The rendered result: :: zml The linkto-component of the base namespace is simply defined: :: %namespace base=doonx.org/base *linkto: a href=_path(action, _params): {_children[0]} The _path function is a core function of the zml implementation. It will return an url path by interpolating the parameters into the route path definition. The routevars wrapped by moustaches in the route-section (~) with the corresponding action name will be replaced by the values of the second function parameter of the _path function. The _params context property contains all parameters of a component. F.e. the following line will use the linkto-component with the parameters action and id. The component can access the parameters by using the _params context property. The linkto-component will forward the _params property as a parameter of the _path function. :: base-linkto action='edit' id=1