Route

The Route tag gets the current URL route, or a part of it.

A "route" means everything after the site URL.

Example

If the current URL is: https://example.com/product/sample-product

Then the following:

<Route />

..will show product/sample-product.

Note

The route does not start (nor end) with / (forward slash).

Route part

Use the part attribute to get a route part.

Route parts are separated by / (forward slash).

Single

To get a single part, pass its "index", a position number starting with 1.

<Route part=2 />

Until

Add ~ in front of the index to get all parts until (and including) that position.

<Route part=~2 />

After

Add ~ after the index to get all parts after (and including) that position.

<Route part=2~ />

Between

Add ~ between two indexes to get all parts between (and including) those positions.

<Route part=2~3 />

Last route part(s)

Use the part attribute with a negative index (-1 and below) to get a part of the route, counting from the last.

It can be combined with ~ to get a range of parts.

Here are some examples.

Last

<Route part="-1" />

Second to last

<Route part="-2" />

From second to last

<Route part="-2~" />

Until second to last

<Route part="~-2" />

Match routes

Use the If tag with subject route to see if the current route matches a given pattern.

<If route value="hello-world">
  Hello, world!
</If>

The value can include the following "wildcards" to match a pattern.

  • ? - Any single character
  • * - Any single route part
  • ** - Matches one or more route parts

For example:

<If route value="product/*">
  Single product
</If>

Remember to quote the value, since it typically contains a slash.

Route status

With the Tangible Views theme, a template can set the response status code.

For example, inside a "Not Found" page:

<Route status=404 />