Urubu implements a number of Markdown extensions. These extensions do not change or extend the Markdown syntax. Rather, they add interesting features by processing and rendering the Markdown source in more sophisticated ways.

The extensions are described in more detail below.

Project-wide reference ids

Urubu implements a Markdown extension to resolve project-wide reference ids. This means that all pages in the project are automatically available as reference ids, and can be referred to using Markdown's syntax for reference links.

This feature is described in more detail in the sections Project-wide reference ids and Reference links. It is Urubu's most important extension and a fundamental feature of the tool.

Bootstrap-specific extensions

Urubu is designed to play well with Bootstrap. To use certain Bootstrap features, it has extensions that add Bootstrap classes to certain tags. More specifically, the following classes are added:

Added to the <table> tag. This defines basic styling for tables.
Added to the <dl> tag that defines definition lists. This creates a horizontal layout for definition lists in wide viewports.

Support for the mark tag

The html5 specification added a new tag to highlight text: the <mark> tag. For a good explanation of its purpose and the differences with the <strong> and <em> tags, see this answer on Stack Overflow.

Urubu supports lightweight markup for this tag by taking advantage of a redundancy in Markdown. In standard Markdown, you can either use asterisks (*) or underscores (_) to indicate emphasis. With the Urubu extension, the underscore (_) version is rendered using <mark> instead.

This is an experimental feature that may be taken out if there are serious objections, although at this point there do not seem to be disadvantages. To disable the feature, the mark_tag_support variable can be set to false in the _site.yml file.