WebMake
WebMake Documentation (version 2.2)

Sorting Lists of Content Items

Frequently, you will need to get a list of content items in sorted order. WebMake itself does this for the sitemap tag, among others.

Sorting is typically performed using a content item's metadata; some metadata that are especially useful are:

score

A number representing the "priority" of a content item; specifically intended for use when sorting. Defaults to 50 if unset.

title

The title of a content item. Handy for alphabetic lists. Defaults to (Untitled) if not set.

declared

The item's declaration order. This is a number representing when the content item was first encountered in the WebMake file; earlier content items have a lower declaration order. You do not need to set this; WebMake will do so automatically.

mtime

The modification date, in UNIX time_t seconds-since-the-epoch format, of the file the content item was loaded from.

name

The name of the content item.

WebMake provides a built-in mechanism to allow easy sorting of content items, called a sort spec or sort string.

This is typically used either with the Perl code library's sort_content_objects() call, or using a sortorder attribute as the sitemap tag does.

A sort string is a text string, containing a space-separated list of metadata items. The first entry in the list is the main sorting criterion; the second entry is then used to break deadlocks if two entries match for the main criterion, etc.

In addition, a metadata item can be prefixed with a !, to reverse its order.

Example

score title: sort by score, and if two content items have the same score, sort by title.

declared: sort by the order in which they were declared in the WebMake file.

score title !mtime: sort by score and title, and if more than one content item have the same score and title, sort them into oldest-first order.

WebMake Documentation (version 2.2)
Built With WebMake